Spring03-xml配置注入

 一、Setter注入

      Setter注入顾名思义,被注入的属性需要有set方法,对象注入使用<property>的ref属性。

      

public class CustomerServiceImpl implements ICustomerService{
	
	private String a;
	private int b;
	private Date c;
	
	//以上三个成员,没有实际意义,只是用于演示注入。
        public void setA(String a) {
		this.a = a;
	}
	public void setB(int b) {
		this.b = b;
	}
	public void setC(Date c) {
		this.c = c;
	}

        @Override
        public void saveCustomer() {
	      System.out.println("业务层调用持久层"+a+","+b+","+c);
	  
        }

}

配置:xml文件

 <!-- 使用set方法注入 -->
    <bean id="customerService2" class="com.lixin.service.impl.CustomerServiceImpl2">
         <property name="a" value="lixin"></property>
         <property name="b" value="222"></property>
         <property name="c" ref="datee"></property>
    </bean>

 二、构造器注入

构造注入也就是通过构造方法注入依赖,构造函数的参数一般情况下就是依赖项,spring容器会根据bean中指定的构造函数参数来决定调用那个构造函数。

public class CustomerServiceImpl implements ICustomerService{
	
	private String a;
	private int b;
	private Date c;
	
	//以上三个成员,没有实际意义,只是用于演示注入。
	
	
	public CustomerServiceImpl(String a, int b, Date c) {
		super();
		this.a = a;
		this.b = b;
		this.c = c;
	}


	@Override
        public void saveCustomer() {
	     System.out.println("业务层调用持久层"+a+","+b+","+c);
	  
        }
	
}

配置:xml文件

 <!-- 构造函数注入:
                   涉及的标签:constructor-arg
                   标签的属性:
                        type:指定参数的类型
                        index:指定参数的索引位置,从0开始
                        name:指定参数的名称。          一般用它
                        ==========上面三个属性是指定给哪个参数赋值,下面两个属性是指定赋什么值得================
                        value:指定基本数据类型或String类型的数据
                        ref:指定其他bean类数据
                   标签出现的位置:
                       写在bean标签内部
                            
     
      -->

    <!-- 配置资源:把对象的创建交给spring来管理 -->
    <bean id="datee" class="java.util.Date"></bean>
    <bean id="customerService" class="com.lixin.service.impl.CustomerServiceImpl">
           <constructor-arg name="a" value="lixin"></constructor-arg>
           <constructor-arg name="b" value="1"></constructor-arg>
           <constructor-arg name="c" ref="datee"></constructor-arg>
    </bean>

三、静态工厂/实例工厂的方法注入

         此方法不常使用,故不做介绍

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值