springDI:依赖注入——给属性赋值

说明:

    一个类中的属性都可以采用springDI的方式进行赋值,但是并不是所有的属性都适合赋值,固定的配置文件地址,存放到spring中。

 

springDI的说明:

   1、如果spring的配置文件中的bean中没有<constructor-arg>该元素,则调用默认的构造函数

   2、如果spring的配置文件中的bean中有<constructor-arg>该元素,则该元素确定唯一的构造函数

          index  代表参数的位置  从0开始计算

          type   指的是参数的类型

          value  给基本类型赋值

          ref    给引用类型赋值

 

Person.java

    public class Person {
        public Person(){System.out.println("person");}
         
        private Long pid;
        private String pname;
        private Student student;
        private Set sets;
        private List lists;
        private Map map;
        private Properties properties;
        set,get方法。。。。。。。。。。。。。
        public String toString() {
            return "Person [pid=" + pid + ", pname=" + pname + ", student="
            + student + ", sets=" + sets + ", lists=" + lists
            + ", map=" + map + ", properties=" + properties + "]";
        }
    }

 

Person_Con.java

public class Person_Con {
    private Long pid;
    private String pname;
    private Student student;
    public Person_Con(String pname,Student student){
        this.pname = pname;
        this.student = student;
    }
    public Person_Con(Long pid,String pname,Student student){
        this.pid = pid;
        this.pname = pname;
        this.student = student;
    }
    public Person_Con(){System.out.println("person_Con");}
           set,get方法。。。。。。。。。。。。。。
}

 

applicationContext-di.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 
<bean id="person_con" class="cn.itcast.spring.di.Person_Con">
    <constructor-arg index="0" type="java.lang.String" value="pengya"></constructor-arg>
    <constructor-arg index="1" type="cn.itcast.spring.di.Student" ref="student"></constructor-arg>
</bean>    
           
<bean id="person" class="cn.itcast.spring.di.Person" >
    <property name="pid" value="2"></property>
    <property name="pname" value="peng"></property>
    <property name="student" ><ref bean="student"/></property>
    <property name="lists">
        <list>
            <value>l1</value>
            <value>l2</value>
            <ref bean="student"/>
        </list>
    </property>
    <property name="sets">
        <set>
            <value>s1</value>
            <value>s2</value>
            <ref bean="student"/>
        </set>
    </property>
    <property name="map">
        <map>
            <entry key="m1">
                <value>map1</value>
            </entry>
            <entry key="m2">
                <ref bean="student"/>
            </entry>
        </map>
    </property>
    <property name="properties">
        <props>
            <prop key="p1">prop1</prop>
            <prop key="p2">prop2</prop>
        </props>
    </property>
</bean>
    
    
<bean id="student" class="cn.itcast.spring.di.Student" ></bean>     
</beans>