当前位置: 首页 > news >正文

Spring面试题pro版-1

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

Spring是什么?

Spring 是轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。在框架中,各类型的功能被抽象成一个个的Bean ,spring 容器对此进行统一管理。

Spring有什么优势?

  • 方便解耦,简化开发。
  • 通过Spring 提供的IoC 容器,可以将对象间的依赖关系交由Spring 进行控制,避免硬编码所造成的过度程序 耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
  • AOP编程的支持
  • 声明式事务的支持
  • 方便程序的测试
  • 方便集成各种优秀框架
  • 降低JavaEE API的使用难度

Spring 对 JavaEE API (如JDBC、JavaMail、远程调用等)进行了薄薄的封装层,使这些API 的使用难度大为 降低。

解释一下Spring的IOC控制反转

在应用加载的时候,将我们所需要的对象存入容器中,通过工厂来从容器中获取指定的对象。以前我们获取对象通过
new 的方式,现在管工厂要,由工厂创建,这种被动的方式就是控制反转。他包括依赖注入di 和依赖查找dl。 ioc 的目的就是削减计算机程序的耦合。比如汽车,有一个轮子,你用new的方式,轮子的尺寸一变,你new的要全变。 使用ioc从工厂拿,告诉他我要个轮子。轮子改变的话内部进行调整即可。

Spring依赖注入的什么?

依赖注入是DI,是Spring ioc 的具体实现。我们的程序在编写时,通过控制反转,把对象的创建交给了Spring,但 是在代码中不可能出现没有依赖的情况。ioc 解耦只是降低他们的依赖关系,但不会消除。业务层还是会调用持久 层,现在这种调用关系交给Spring 进行处理了。

BeanFactory和ApplicaitonContext的区别?

BeanFactory 是Spring 容器的顶层接口。 ApplicationContext 是他的子接口。
区别:
创建对象的时间点不同, ApplicationContext一读取配置文件就会创建对象。
BeanFactory:什么时候使用什么时候创建对象。
ApplicationContext 可以预先加载,坏处是浪费内存。 BeanFactory 好处是节约内存,坏处是速度比较慢。

相关文章:

Spring面试题pro版-1

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。 Spring是什么…...

6 Reverse Linked List

分数 20 作者 陈越 单位 浙江大学 Write a nonrecursive procedure to reverse a singly linked list in O(N) time using constant extra space. Format of functions: List Reverse( List L ); where List is defined as the following: typedef struct Node *PtrToNo…...

【随笔】Git 高级篇 -- 相对引用2 HEAD~n(十三)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…...

2024免费Mac电脑用户的系统清理和优化软件CleanMyMac

作为产品营销专家,对于各类产品的特性与优势有着深入的了解。CleanMyMac是一款针对Mac电脑用户的系统清理和优化软件,旨在帮助用户轻松管理、优化和保护Mac电脑。以下是关于CleanMyMac的详细介绍: CleanMyMac X2024全新版下载如下: https://…...

Centos7源码方式安装Elasticsearch 7.10.2单机版

版本选择参考:Elasticsearch如何选择版本-CSDN博客 下载 任选一种方式下载 官网7.10.2版本下载地址: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz 网盘下载链接 链接:https://pan…...

mysql的安装和部署

##官网下载mysql 我下载的是一个mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz 可以通过xshell 或者xftp传送 xshell则是先下载一个lrzsz 执行以下的命令 yum install lrzsz -y #安装好我下面有个一键安装的脚本 #!/bin/bash#解决软件的依赖关系 yum install cmake ncurses…...

大数据基本名词

目录[-] 1.1. 1. Hadoop1.2. 2. Hive1.3. 3. Impala1.4. 4. Hbase1.5. 5.hadoop hive impala hbase关系1.6. 6. Spark1.7. 7. Flink1.8. 8. Spark 和 Flink 的应用场景 1. Hadoop 开源官网:https://hadoop.apache.org/ Hadoop是一个由Apache基金会所开发的分…...

网站网页客服、微信公众号客服、H5客服、开源源码与高效部署的完美结合

随着互联网技术的飞速发展,企业与客户之间的沟通方式也在持续变革。在线客服系统作为一种新兴的沟通工具,已经成为提升企业服务质量、增强客户满意度的重要手段。本文将详细介绍在线客服系统的优势、功能以及如何高效部署,特别是推荐一款名为…...

1、Qt UI控件 -- qucsdk

前言:Qt编写的自定义控件插件的sdk集合,包括了各个操作系统的动态库文件以及控件的头文件和sdk使用demo。类似于Wpf中的LivChart2控件库,都是一些编译好的控件,可以直接集成到项目中。该控件是飞扬青云大神多年前开发的&#xff0…...

Sora是什么?Sora怎么使用?Sora最新案例视频以及常见问题答疑

Sora 是什么? 2024年2月16日,OpenAI 在其官网上面正式宣布推出文本生成视频的大模型Sora 这样说吧给你一段话, 让你写一篇800字的论文,你的理解很可能都有偏差,那么作为OpenAi要做文生视频到底有多难,下面…...

如何在Ubuntu系统使用docker部署DbGate容器并发布至公网可访问

文章目录 1. 安装Docker2. 使用Docker拉取DbGate镜像3. 创建并启动DbGate容器4. 本地连接测试5. 公网远程访问本地DbGate容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 本文主要介绍如何在Linux Ubuntu系统中使用Docker部署DbGate数据库管理工…...

解决 VSCode 编辑器点击【在集成终端中打开】出现新的弹框

1、问题描述 在 VSCode 的项目下,鼠标右键,点击【在集成终端中打开】,出现新的一个弹框。新版的 VSCode 会有这个问题,一般来说我们都希望终端是在 VSCode 的控制台中打开的,那么如何关闭这个弹框呢? 2、解…...

从零开始:构建、打包并上传个人前端组件库至私有npm仓库的完整指南

文章目录 一、写组件1、注册全局组件方法2、组件13、组件2 二、测试三、发布1、配置package.json2、生成库包3、配置发布信息4、发布 四、使用1、安装2、使用 五、维护1、维护和更新2、注意事项 一、写组件 确定组件库的需求和功能:在开始构建组件库之前&#xff0c…...

Ant Design Vue 表单验证手机号的正则

代码&#xff1a; pattern: /^1[3456789]\d{9}$/ 1. <a-form-item label"原手机号" v-bind"validateInfos.contactTel"><a-inputstyle"width: 600px"allow-clear:maxlength"20"placeholder"请输入原手机号"v-mo…...

[dvwa] CSRF

CSRF 0x01 low 跨站&#xff0c;输入密码和确认密码直接写在url中&#xff0c;将连接分享给目标&#xff0c;点击后修改密码 社工方式让目标点击短链接 伪造404页&#xff0c;在图片中写路径为payload&#xff0c;目标载入网页自动请求构造链接&#xff0c;目标被攻击 http…...

只为兴趣,2024年你该学什么编程?

讲动人的故事,写懂人的代码 当你想学编程但不是特别关心找工作的时候,选哪种语言学完全取决于你自己的目标、兴趣和能找到的学习资料。一个很重要的点,别只学一种语言啊!毕竟,"门门都懂,样样皆通",每种编程语言都有自己的优点和适合的用途,多学几种可以让你的…...

HAL STM32 定时器PWM DMA输出方式

HAL STM32 定时器PWM DMA输出方式 &#x1f9e8;遗留问题&#xff1a;当配置RCR重复计数器&#xff0c;配置为2时&#xff0c;在定义了3组PWM参数情况下&#xff0c;只能输出第二组参数的PWM波形。&#xff08;HAL_TIM_PWM_Start_DMA(&htim1, TIM_CHANNEL_1, aCCValue_Buff…...

博客部署004-centos安装mysql及redis

1、如何查看当前centos版本&#xff1f; cat /etc/os-release 2、安装mysql 我的是centos8版本&#xff0c;使用dnf命令 2.1 CentOS 7/8: sudo yum install -y mysql-community-server 或者在CentOS 8上&#xff0c;使用DNF:&#x1f31f; sudo dnf install -y mysql-ser…...

Hive 之 UDF 运用(包会的)

文章目录 UDF 是什么&#xff1f;reflect静态方法调用实例方法调用 自定义 UDF&#xff08;GenericUDF&#xff09;1.创建项目2.创建类继承 UDF3.数据类型判断4.编写业务逻辑5.定义函数描述信息6.打包与上传7.注册 UDF 函数并测试返回复杂的数据类型 UDF 是什么&#xff1f; H…...

数据驱动目标:如何通过OKR实现企业数字化转型

在数字化转型的浪潮中&#xff0c;企业管理者面临着前所未有的挑战和机遇。如何确保企业在变革中不仅能够生存&#xff0c;还能蓬勃发展&#xff1f;答案可能就在于有效的目标管理——特别是采用OKR&#xff08;Objectives and Key Results&#xff0c;目标与关键成果&#xff…...

软考120-上午题-【软件工程】-软件开发模型02

一、演化模型 软件类似于其他复杂的系统&#xff0c;会随着时间的推移而演化。在开发过程中&#xff0c;常常会面临以下情形&#xff1a;商业和产品需求经常发生变化&#xff0c;直接导致最终产品难以实现&#xff1b;严格的交付时间使得开发团队不可能圆满地完成软件产品&…...

C语言面试题之返回倒数第 k 个节点

返回倒数第 k 个节点 实例要求 1、实现一种算法&#xff0c;找出单向链表中倒数第 k 个节点&#xff1b;2、返回该节点的值&#xff1b; 示例&#xff1a;输入&#xff1a; 1->2->3->4->5 和 k 2 输出&#xff1a; 4 说明&#xff1a;给定的 k 保证是有效的。实…...

力扣爆刷第116天之CodeTop100五连刷66-70

力扣爆刷第116天之CodeTop100五连刷66-70 文章目录 力扣爆刷第116天之CodeTop100五连刷66-70一、144. 二叉树的前序遍历二、543. 二叉树的直径三、98. 验证二叉搜索树四、470. 用 Rand7() 实现 Rand10()五、64. 最小路径和 一、144. 二叉树的前序遍历 题目链接&#xff1a;htt…...

B站广告推广操作教程及费用?

哔哩哔哩&#xff08;B站&#xff09;作为国内极具影响力的年轻人文化社区&#xff0c;已成为众多品牌与企业触达目标受众、提升品牌影响力的重要阵地。然而&#xff0c;面对B站复杂的广告系统与精细化运营需求&#xff0c;许多广告主可能对如何高效开展B站广告推广感到困惑。云…...

Linux操作系统之docker基础

目录 一、docker 1.1 简介 1.2 安装配置docker 二、dockerfile 1.1、简介 1.2、dockerfile 关键字 一、docker 1.1 简介 容器技术 容器其实就是虚拟机&#xff0c;每个容器可以运行不同的系统【系统是以linux为主的】 为什么要使用docker&#xff1f; docker容器之间相互隔…...

35-3 使用dnslog探测fastjson漏洞

一、DNSLog 原理 DNSLog是一种记录在DNS上的域名相关信息的机制,类似于日志文件,记录了对域名或IP的访问信息。了解多级域名的概念对理解DNSLog至关重要。因特网采用树状结构的命名方法,按照组织结构划分域,每个域都是名字空间中被管理的一个划分,可以进一步划分为子域。域…...

Qt——示波器/图表 QCustomPlot

一、介绍 QCustomPlot是一个用于绘图和数据可视化的Qt C小部件。它没有进一步的依赖关系&#xff0c;提供友好的文档帮助。这个绘图库专注于制作好看的&#xff0c;出版质量的2D绘图&#xff0c;图形和图表&#xff0c;以及为实时可视化应用程序提供高性能。QCustomPlot可以导出…...

《图解Vue3.0》- 调试

如何对vue3项目进行调试 调试是开发过程中必备的一项技能&#xff0c;掌握了这项技能&#xff0c;可以很好的定义bug所在。一般在开发vue3项目时&#xff0c;有三种方式。 代码中添加debugger;使用浏览器调试&#xff1a;sourcemap需启用vs code 调试&#xff1a;先开启node服…...

【PyQt5篇】和子线程进行通信

文章目录 &#x1f354;使用QtDesigner进行设计&#x1f6f8;和子线程进行通信&#x1f388;运行结果 &#x1f354;使用QtDesigner进行设计 我们首先使用QtDesigner设计界面 得到代码login.ui <?xml version"1.0" encoding"UTF-8"?> <ui …...

JavaScript数组操作方法全录

改变原数组的方法&#xff1a; push() - 将一个或多个元素添加到数组的末尾&#xff0c;并返回新数组的长度。 pop() - 从数组中移除最后一个元素&#xff0c;并返回该元素。 shift() - 从数组中移除第一个元素&#xff0c;并返回该元素。 unshift() - 将一个或多个元素添加到…...