Spring面试题pro版-3

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

Spring的属性注入的方式有哪几种?

(1)构造函数注入

使用类中的构造函数,给成员变量赋值。

构造函数的方式要求类中提供一个对应参数列表的构造函数。

使用constructor-arg标签。

属性:

index :指定参数在构造函数参数的索引位置。

type:指定参数在构造函数中的数据类型。

name:指定参数在构造函数中的名称。

value:赋值可以是基本类型和string。

ref:赋其他配置过的bean类型。

(2)set方法注入

通过property进行注入

属性

name :找的是set后面的部分

ref:给属性赋值是其他的bean类型

value:基本类型和string类型

(3) P 名称注入

此种方式是通过在xml 中导入p 名称空间,使用p:propertyName 来注入数据,它的本质仍然是调用类中的set 方

法实现注入功能。

Spring使用注解进行装配的时候需要什么注解

componetScan 指定basePackage

说说Spring常用的注解

1、@Component 相当于将此类交由spring进行管理

2、@Controller ,@Service ,@Repository,分别用于controller层, service层, dao层。

3、@Autowired 按照类型注入

4、@Qualifer 类型注入的基础上,按照名称进行注入

5、@Value注解,用于注入一些数据

6、@Scope 用于指定bean的作用范围

7、@PostConstruct 用于初始化bean的时候,执行的方法

8、@PreDestroy 用于bean销毁的时候执行

@Autowired和@Resource的区别

@Autowired 优先按照类的类型来进行匹配。如果找到了,则返回,如果找到多个则报错。此时配合@Qualifier使 用,通过这个注解指定名字,找到唯一的类进行装载。

@Resource 是javaee的注解,默认通过名字来进行装配。找不到则报错。里面可以指定两个属性type,和name。通

过这两个找到唯一的类型装载。

@Component和@Bean的区别

1.作用对象不同。 @Component注解作用于类,而@Bean注解作用于方法。

2.@Component注解通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中(我们可以使用

@ComponentScan注解定义要扫描的路径)。@Bean注解通常是在标有该注解的方法中定义产生这个bean,告诉 Spring这是某个类的实例,当我需要用它的时候还给我。

3.@Bean注解比@Component注解的自定义性更强,而且很多地方只能通过@Bean注解来注册bean。比如当引用 第三方库的类需要装配到Spring容器的时候,就只能通过@Bean注解来实现。

相关推荐
嘻哈baby1 小时前
Go 函数中的参数为什么不支持默认值?
java·开发语言·jvm
慧都小项1 小时前
MyEclipse 2026:当 Agent、MCP 与 Java 26 进入 Eclipse 工作流
java·eclipse·springboot·copilot·myeclipse
摇滚侠1 小时前
《SpringBoot 3:入门与应用实战》第 14 章 打包与部署 Spring Boot 应用打包 阅读笔记 41
spring boot·笔记·后端
CoderYanger2 小时前
前端基础——JavaScript(基础语法)(下篇)
java·开发语言·前端·javascript·程序人生·面试·职场和发展
京师20万禁军教头2 小时前
39面向对象(高级)-设计模式
java·开发语言·设计模式
白山编程大哥2 小时前
Java 迭代器接口详解:从 Iterator 到 ListIterator 的完整指南
java·开发语言·windows
热心网友俣先生2 小时前
2026国赛C题:五年命题规律与预测
java·c语言·前端·数学建模
见叶之秋3 小时前
【C++】String类的使用(含模拟实现)
java·开发语言·c++
竹叶青_七弦3 小时前
从复制粘贴到Harness:Java后端AI编程的工程化之路
java
阿拉斯攀登3 小时前
MQ消息积压问题排查:消费卡顿、堆积、消费速度优化
后端