spring的三种注入方式:
1、属性注入
2、构造方法注入
3、工厂方法注入
属性注入:
属性注入需要注意的是在bean的配置时属性名称是setter方法的名字而不是字段名称,如:
<bean id="car" class="com.za.Car"> <property name="IDCard"><value>123</value></property> </bean>
而Java类:
Class Car{ private Integer iDCard; public void setIDCard(Integer iDCard){ this.iDCard=iDCard; } }
如果property属性中name写成了iDCard 当启动spring时就会报错
构造方法注入:
当一个类中只有一个有参构造并且入参类型不一致时:
Class Car{ private String name; private Double price; public Class(String name,Double price){ this.name = name; this.price = price; } //setter、getter... }
bean的xml配置:
<bean id="car" class="com.za.Car"> <constructor-arg type="java.lang.String" value="hongqi"/> <constructor-arg type="java.lang.Double" value="555555"> </bean>
当只有一个入参并且入参类型有重复时:
Class Car{ private String name; private String CarNo; private Double price public Class(String name,String CarNo,Double price){ this.name = name; this.CarNo= CarNo; this.price=price; } //setter、getter... }
此时bean的xml配置使用type就不可以了,要使用index来区分:
<bean id="car" class="com.za.Car"> <constructor-arg index="0" value="hongqi"/> <constructor-arg index="1" value="苏A00000"> <constructor-arg index="2" value="555555"> </bean>
当构造方法有重载并且入参类型重复时,这时使用type和index来结合使用加以区分(例子省略)
构造方法注入可能会出现的一种情况是:循环依赖问题,比如在Car的构造方法中依赖了Wheel类,而Wheel类的构造方法中也依赖了Car类,此时启动spring容器就会有问题。解决方法:修改bean代码把构造方法注入修改为属性注入就可以了。
工厂方法注入:
非静态工厂方法:
public CarFactory{ public Car creatCar(){ Car car = new Car(); car.setName("红旗"); return car; } }
bean配置:
<bean id="car" class="com.za.Car" factory-bean="carFactory" factory-method="creatCar"></bean> <bean id="carFactory class="com.za.CarFactory/>
因为是非静态的,所以要有一个工厂bean,在工厂注入时引用
静态工厂方法:
public CarFactory{ public static Car creatCar(){ Car car = new Car(); car.setName("红旗"); return car; } }
bean配置:
<bean id="car" class="com.za.CarFactory" factory-method="creatCar"/>
省去了工厂bean的配置
相关推荐
NULL 博文链接:https://gary0416.iteye.com/blog/889125
NULL 博文链接:https://gary0416.iteye.com/blog/890689
NULL 博文链接:https://gary0416.iteye.com/blog/889228
Spring 三种依赖注入方式.doc Spring 三种依赖注入方式.doc
bean加入spring容器管理的方式,bean加入applicationcontext容器的方式
主要给大家介绍了关于spring boot中几种注入方法的一些个人看法,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
spring注入方式 set注入 构造注入 自动注入
spring 依赖注入三种方式测试源码,测试细节参考博文http://blog.csdn.net/u010679383/article/details/71305400
NULL 博文链接:https://shmilyaw-hotmail-com.iteye.com/blog/2169569
Spring IOC的注入方式总结 ,具体效果和过程看博文http://blog.csdn.net/evankaka/article/details/44832305
花了些时间做了一个实验,彻底弄懂了spring Annotation注入的方式。凡带有@Component,@Controller,@Service,@Repository 标志的等于告诉Spring这类将自动产生对象,而@Resource则等于XML配置中的ref,告诉spring此处...
如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的 依赖注入就是通过spring将bean所需要的一些参数传递到bean实例对象的过程(将依赖关系注入到对象中) ,spring的依赖注入有3种方式: ...
原创的哦,希望能对spring学习者有所帮助
详细介绍spring的三种注入方式,带有实例和图片
主要介绍了详解Spring中bean的几种注入方式,主要介绍了4种注入,主要有属性注入、构造函数注入、工厂方法注入,非常具有实用价值,需要的朋友可以参考下
一个spring设值注入的例子,自己也是初学者。希望高手都知道啊……
本项目为Java项目,使用Spring实现依赖注入,实现采用ApplicationContext,不再直接使用XmlBeanFactory方式。适合初学者了解Spring依赖注入的实现。
我们学习了spring框架spring框架里面有3个优势第一个是轻量级的IOC也叫控制反转后来改名为DI也叫依赖注入,依赖注入里面有3中注入方法分别是set注入,构造器注入,注解注入,我传的是set注入的视频
1.spring 普通属性注入 2.xml中 map集合标签与其他标签不通-- 3.用junit测试