【原创】Spring 注入方式

 

Spring 强烈推荐注解在构造器上,且对于不能为null的字段或者属性都用断言。

 

1. 设值注入

  原理:通过setter方法注入

  XML配置方式:bean下的property标签,用value指定基本类型数据,用ref引用其他bean。

 

2. 构造器注入

  原理:通过构造函数注入

  XML配置方式:bean下的constructor-arg标签,根据name/type/index确定依赖的位置(防止歧义),用value指定基本类型数据,用ref指定其他bean

 

注:上述俩种方式可以用来注入集合或者Map类型数据,在property或者constructor-arg标签下用list/set/map子标签定义。

 

3. 静态工厂/实例工厂注入

 

  原理:通过工厂的类方法或者工厂的实例方法来实现注入

  XML配置方式:静态工厂在bean下使用class指定工厂类,factory-method指定工厂方法。实例工厂首先需要将工厂类配置为一个bean,然后在bean下使用factory-bean指定实例工厂bean,用constructor-arg或者property指定参数。

 

  注:实际上这俩种方法是本质上也是通过set和构造器注入实现的,主要在于提供属性或者构造器参数的方式:一般是引用其他bean(不讨论基本数据类型),工厂方式注入则是引用工厂bean

 

4. 属性值/字段/普通方法注入

  • 调用getter方法:使用PropertyPathFactoryBean

  • 调用类或对象的Filed值:使用FiledRetrievingFactoryBean

  • 调用普通方法:使用MethodInvokingFactoryBean

  参考:https://my.oschina.net/itblog/blog/206481

 

posted @ 2016-12-10 14:56  彭玉松  阅读(242)  评论(0编辑  收藏  举报