Spring学习 之四种XML配置注入方式

Spring容器帮我们实例化对象并且注入到需要该对象的类中。

Setter注入

public class ClassA {

    private ClassB classB;

    public void printClassB(){
        System.out.println(classB);
    }

    public void setClassB(ClassB classB){
        this.classB = classB;
    }
}

public class ClassB {
}

applicationContext.xml配置文件:

<!-- <bean>中的id属性是bean的标识,必须唯一。class属性是类的完全限定名,指明由哪个类来实例化。 -->
<bean id="classB" class="com.mvc.ClassB"/>
<!-- <property>是用来指明要注入的属性和对象的,<property>标签中的name就是就是注入方法名去掉前面的set,剩下的这一截首字母大小写可不限。ref指向要注入的对象(id)。对象是引用实例,所以要用ref,如果是传值,则用value。 -->
<bean id="classA" class="com.mvc.ClassA">
    <property name="classB" ref="classB" />
</bean>

另外要注意的是:property name只和注入方法名相关,和内部属性名没有半毛关系。所以ClassA类改成下面这样也是可以的:

public class ClassA {

    private ClassB classBBB;

    public void setClassB(ClassB classB){
        this.classBBB = classB;
    }
}

构造器注入

构造函数也是一个注入点。现在我们把上例的setter注入改为构造注入。

public class ClassA {

    private ClassB classB;
	/*构造函数注入*/
    public ClassA(ClassB classB){
        this.classB = classB;
    }

    public void printClassB(){
        System.out.println(classB);
    }
}

applicationContext.xml配置文件:
<property name="classB" ref="classB" />
改为<constructor-arg ref="classB" />
这样就完成了构造器注入。

多参数构造函数赋值:

<bean id="order" class="twm.spring.start.Order" >
    <constructor-arg index="0" value="张老三"></constructor-arg>
    <constructor-arg index="2" ref="notify"></constructor-arg>
    <constructor-arg index="1" value="2017877997"></constructor-arg>
</bean>

静态工厂的方法注入

实例工厂的方法注入

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值