Spring提供的Bean作用域,生命周期,自动装配的限制和相关注解

Spring提供的Bean作用域,生命周期,自动装配的限制和相关注解

 

以下为Spring提供了哪些Bean的作用域

答:
 
singletonBean以单例的方式存在(IoC容器中仅存在该Bean的唯一实例)。
 
prototype:每次从容器中获取Bean的实例时,都会返回一个新的实例(原型模式)。
 
request:每次HTTP请求都会创建新的实例,该作用域仅适用于WebApplicationContext环境。
 
session:同一个HTTP会话共享一个Bean的实例,不同的HTTP会话使用不同的Bean实例,
 
该作用域仅适用于WebApplicationContext环境。
 
globalSession:同一个全局会话共享一个Bean的实例,一般应用于Portlet应用中。
 

以下为Spring框架中Bean的生命周期?

 

1Spring IoC容器找到关于Bean的定义并实例化该Bean
 
2Spring IoC容器对Bean进行依赖注入。
 
3)如果Bean实现了BeanNameAware接口,则将该Beanid传给setBeanName方法。
 
4)如果Bean实现了BeanFactoryAware接口,则将BeanFactory对象传给setBeanFactory方法。
 
5)如果Bean实现了BeanPostProcessor接口,则调用其postProcessBeforeInitialization方法。
 
6)如果Bean实现了InitializingBean接口,则调用其afterPropertySet方法。
 
7)如果有和Bean关联的BeanPostProcessors对象,则这些对象的postProcessAfterInitialization方法被调用。
 
8)当销毁Bean实例时,如果Bean实现了DisposableBean接口,则调用其destroy方法
 

Spring中的自动装配有哪些限制?

 

1)如果使用了构造器注入或者setter注入,那么将覆盖自动装配的依赖关系。
 
2)基本数据类型的值、字符串字面量、类字面量无法使用自动装配来注入。
 
3)有先考虑使用显式的装配来进行更精确的依赖注入而不是使用自动装配。
 

自动装配相关的注解有哪些?

 

1@Required:该依赖关系必须装配(手动或自动装配),否则将抛出BeanInitializationException异常。
 
2@Autowired:自动装配,默认按类型进行自动装配。
 
3@Qualifier:如果按类型自动装配时有不止一个匹配的类型,那么可以使用该注解指定名字来消除歧义。
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值