Spring Bean注入方式

Spring Bean注入方式


一、构造器注入
1.构造器注入顾名思义就是在程序组件中实现构造器,构造器可以是一个也可以是多个。
public class PersonServiceBean implements PersonServiceIF{
    //自定义类
    private PersonDaoIF personDaoBean;
    //String类型
    private String name;
    //集合类型
    private List list;
    //构造器(构造器注入一定要有这个构造器)
    public PersonServiceBean(PersonDaoBean personDaoBean,String name,List list){
        this.personDaoBean = personDaoBean;
        this.name = name;
        this.list = list;
    }
}


<bean id="personDao" class="cn.glzaction.service.impl.PersonDaoBean"></bean >
<!--构造器方式注入-->
<bean id="personService" class="cn.glzaction.service.impl.PersonServiceBean">
    <constructor-arg index="0" type="cn.glzaction.service.impl.PersonDaoBean" ref="personDao"/>
    <constructor-arg index="1" type="java.lang.String" value="glzaction"/>
    <constructor-arg index="2" type="java.util.List">  //List的注入写法
        <list>
            <value>list1</value>
            <value>list2</value>
            <value>list3</value>
        </list>
    </constructor-arg>
</bean>


constructor-arg:表示构造器方式注入
index:构造器参数位置
type:数据类型
ref:是对bean(另一个对象的引用)
value:就是这个参数的值(基本数据类型)
list:List的值



二、设值注入(setter方式注入)
1.设值注入就是通过setXxxx方法将bean注入到组件中.
package cn.glzaction.service.impl;
import cn.glzaction.service.interfaces.PersonDaoIF;
import java.util.*;

public class PersonDaoBean implements PersonDaoIF {
    private String name;
    private Integer id;
    private List list;
    private Map map;

    public void setName(String name) {  //一定要相关参数的set方法
        this.name = name;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public void setList(List list) {
        this.list = list;
    }
    public void setMap(Map map) {
        this.map = map;
    }
}


<bean id="personDao" class="cn.glzaction.service.impl.PersonDaoBean">
    <property name="name" type="java.lang.String" value="glzaction"/>
    <property name="id" type="java.lang.Integer" value="1"/>
    <property name="list" type="java.util.List">
        <list>       //List的注入写法
            <value>list1</value>
            <value>list2</value>
            <value>list3</value>
        </list>
    </property>
    <property name="map" type="java.util.Map">
        <map>       //Map的注入写法
            <entry key="key1" value="value1"></entry>
            <entry key="key2" value="value2"></entry>
        </map>
    </property>
</bean>


property:表示setter方式注入
name:参数名字
type:数据类型
ref:是对bean(另一个对象的引用)
value:就是这个参数的值(基本数据类型)
list:List的值
map:Map的值



三、静态工厂的方法注入(比较少用到)

四、实例工厂的方法注入(比较少用到)



参考原文: http://www.cnblogs.com/java-class/p/4727775.html

猜你喜欢

转载自huangyongxing310.iteye.com/blog/2324887