设值注入:
先通过无参数的构造函数创建一个Bean实例,然后调用对应的setter方法注入依赖关系;
配置文件:
<?xml version="1.0" encoding="GBK"?><!-- Spring配置文件的根元素,使用spring-beans-4.0.xsd语义约束 --><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd"><bean id="chinese" class="org.crazyit.app.service.impl.Chinese"><property name="axe" ref="steelAxe"/><property name="Stuname" value="zhangsan"/></bean><bean id="stoneAxe" class="org.crazyit.app.service.impl.StoneAxe"/><bean id="steelAxe" class="org.crazyit.app.service.impl.SteelAxe"/></beans>
构造注入:
直接调用有参数的构造器,当bean实例创建完成后,已经完成了依赖关系的注入;
配置文件
<?xml version="1.0" encoding="GBK"?><!-- Spring配置文件的根元素,使用spring-beans-4.0.xsd语义约束 --><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd"><bean id="chinese" class="org.crazyit.app.service.impl.Chinese"><constructor-arg ref="steelAxe" type="org.crazyit.app.service.Axe"/><constructor-arg value="zhangsan" type="String"/></bean><bean id="stoneAxe" class="org.crazyit.app.service.impl.StoneAxe"/><bean id="steelAxe" class="org.crazyit.app.service.impl.SteelAxe"/></beans>
比较:
建议使用 设值注入;
对于依赖关系无需变化的注入,尽量采用构造注入;而其他依赖关系的注入,则优先考虑设值注入;
转载请标明出处:http://www.cnblogs.com/ssslinppp/

浙公网安备 33010602011771号