Spring Bean属性说明

https://www.cnblogs.com/ninth/p/6339498.html

几个比较难理解的属性,在此重点介绍下作用及如何使用

一、autowire属性值有

1、 No:即不启用自动装配。Autowire默认的值。

2、 byName:通过属性的名字的方式查找JavaBean依赖的对象并为其注入。比如说类Computer有个属性printer,指定其autowire属性为byName后,Spring IoC容器会在配置文件中查找id/name属性为printerbean,然后使用Seter方法为其注入。

3、 byType:通过属性的类型查找JavaBean依赖的对象并为其注入。比如类Computer有个属性printer,类型为Printer,那么,指定其autowire属性为byType后,Spring IoC容器会查找Class属性为Printerbean,使用Seter方法为其注入。

4、 constructor:与byType一样,也是通过类型查找依赖对象。与byType的区别在于它不是使用Seter方法注入,而是使用构造子注入。

5、 autodetect:在byTypeconstructor之间自动的选择注入方式。

6、 default:由上级标签<beans>default-autowire属性确定。

二、depends-on

1、若A depends-on B 意思是实例化A之前必须先实例化B,但A不需要持有B的实例

三、dependency-check属性值

1、simple 只检查简单的属性是否完成依赖关系

2、objects 检查对象类型的属性是否完成依赖关系

3、all检查全部的属性是否完成依赖关系

4、none默认值,表示不检查依赖性

四、singleton属性值指定此Java Bean是否采用单例(Singleton)模式 

1、false则通过BeanFactory获取此Java Bean实例时,BeanFactory每次都将创建一个新的实例返回。

2、true(默认) 则在BeanFactory作用范围内,只维护此Java Bean的一个实例,代码通过BeanFactory获得此Java Bean实例的引用。

五、factory-bean通过实例工厂方法创建bean,class属性必须为空,factory-bean属性必须指定一个bean的名字,这个bean一定要在当前的bean工厂或者父bean工厂中,并包含工厂方法。而工厂方法本身通过factory-method属性设置

六、scope属性值

1、 singleton:每次调用getBean的时候返回相同的实例.这个是默认,也就是单实例
 2、 prototype:每次调用getBean的时候返回不同的实例.这个是多实例/

3、request、session、global session在web应用中使用

七、autowire-candidate是否作为其他Bean自动装配的候选者,设置为flase这样容器在查找自动装配对象时,将不考虑该bean

1、不设置该属性值或该属性值为default,则取Beans元素default-autowire-candidates属性值中是否配置了该Bean的beanName,如果配置了,则作为自动装配的候选者

2、该属性值为false,此Bean不作为自动装配的候选者

3、该属性值为true,此Bean作为自动装配的候选者

八、子元素Qualifier

1、<bean id="" type="*.DataSource"><qualifier  type="org.springframework.beans.factory.annotation.Qualifier"  value="mysqlDataSource(限定标识符)"/> </bean>

 public void initDataSource(@Qualifier("mysqlDataSource") DataSource dataSource) {    
         this.dataSource = dataSource;    
}

Spring在选择候选者Bean时,将在IOC容器中查找限定标识符为“mysqlDataSource”的Bean注入给initDataSource方法的形参dataSource


九、primary属性为true,自动装配时当出现多个Bean的候选者时,属性primary=true的Bean被作为首选者,不然将抛出异常

10、factory-method,创建Bean的工厂方法。 factory-bean工厂Bean,与factory-method配合使用,通过factory-bean的factory-method 创建Bean





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值