春の研究ノート---注入のBeanプロパティ

豆のフィールド注入

 

プロパティを注入(A)工法

 

1.Student.java

パッケージの実体; 

パブリック クラス学生{
     プライベート文字列名;
    プライベート文字列の年齢; 

    公共学生(文字列名、文字列の年齢){
         この .nameの= 名前;
        この .age = 年齢; 
    } 
    
    @Override 
    公共の文字列のtoString(){
         リターン "学生{" + 
                "名= '" +名+ '\'' + 
                "年齢= '" +年齢+ '\'' + 
                '}' ; 
    } 
}

 

2.applicationContext.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.xsd">
    <bean id="student" class="entity.Student">

        <constructor-arg name="name" value="李四"/>

        <constructor-arg name="age" value="21"/>

    </bean>

</beans>

 

3.StudentTest.java

package Test;



import entity.Student;

import entity.User;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;



public class StudentTest {

    @Test

    public void stu(){

        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

        Student student=(Student)applicationContext.getBean("student");

        System.out.println(student);

    }

}

 

(二)set方法的属性注入

1.Student.java

package entity;



public class Student {

    private String name;

    private String age;



    public String getName() {

        return name;

    }



    public void setName(String name) {

        this.name = name;

    }



    public String getAge() {

        return age;

    }



    public void setAge(String age) {

        this.age = age;

    }



    @Override

    public String toString() {

        return "Student{" +

                "name='" + name + '\'' +

                ", age='" + age + '\'' +

                '}';

    }

}

 

2.applicationContext.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.xsd">

    <bean id="student2" class="entity.Student">

        <property name="name" value="张三"/>

        <property name="age" value="22"/>

    </bean>

</beans>

 

3.StudentTest.java

package Test;



import entity.Student;

import entity.User;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;



public class StudentTest {



      @Test

    public void stu2(){

        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

        Student student2=(Student)applicationContext.getBean("student2");

        System.out.println(student2);

    }



}

 

(三)p名称空间的属性注入

 

1.Student.java

package entity;



public class Student {

    private String name;

    private String age;

    private Cat cat;



    public String getName() {

        return name;

    }



    public void setName(String name) {

        this.name = name;

    }



    public String getAge() {

        return age;

    }



    public void setAge(String age) {

        this.age = age;

    }



    public Cat getCat() {

        return cat;

    }



    public void setCat(Cat cat) {

        this.cat = cat;

    }



    @Override

    public String toString() {

        return "Student{" +

                "name='" + name + '\'' +

                ", age='" + age + '\'' +

                ", cat=" + cat +

                '}';

    }

}

 

2.Cat.java

package entity;



public class Cat {

    private String name;



    public String getName() {

        return name;

    }



    public void setName(String name) {

        this.name = name;

    }



    @Override

    public String toString() {

        return "Cat{" +

                "name='" + name + '\'' +

                '}';

    }

}

 

3.applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:p="http://www.springframework.org/schema/p"

       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.xsd">

    <bean id="student3" class="entity.Student" p:name="小明" p:age="15" p:cat-ref="cat"/>

    <bean id="cat" class="entity.Cat" p:name="小黄"/>



</beans>

 

4.StudentTest.java

package Test;



        import entity.Student;

        import entity.User;

        import org.junit.Test;

        import org.springframework.context.ApplicationContext;

        import org.springframework.context.support.ClassPathXmlApplicationContext;



public class StudentTest {

    @Test

    public void stu3(){

        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

        Student student3=(Student)applicationContext.getBean("student3");

        System.out.println(student3);

    }



}

 

(四)spel的属性注入

 

1.Student.java

package entity;



public class Student {

    private String name;

    private String age;

    private Cat cat;



    public String getName() {

        return name;

    }



    public void setName(String name) {

        this.name = name;

    }



    public String getAge() {

        return age;

    }



    public void setAge(String age) {

        this.age = age;

    }



    public Cat getCat() {

        return cat;

    }



    public void setCat(Cat cat) {

        this.cat = cat;

    }



    @Override

    public String toString() {

        return "Student{" +

                "name='" + name + '\'' +

                ", age='" + age + '\'' +

                ", cat=" + cat +

                '}';

    }

}

 

2.Cat.java

package entity;



public class Cat {

    private String name;



    public String getName() {

        return name;

    }



    public void setName(String name) {

        this.name = name;

    }



    @Override

    public String toString() {

        return "Cat{" +

                "name='" + name + '\'' +

                '}';

    }

}

 

3.applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:p="http://www.springframework.org/schema/p"

       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.xsd">

    <bean id="student4" class="entity.Student">

        <property name="name" value="#{'大名'}"/>

        <property name="age" value="#{16}"/>

        <property name="cat" value="#{cat}"/>

    </bean>

    <bean id="cat" class="entity.Cat">

        <property name="name" value="#{'大黄'}"/>

    </bean>



</beans>

 

4.StudentTest.java

package Test;



        import entity.Student;

        import entity.User;

        import org.junit.Test;

        import org.springframework.context.ApplicationContext;

        import org.springframework.context.support.ClassPathXmlApplicationContext;



public class StudentTest {

    @Test

    public void stu4(){

        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

        Student student4=(Student)applicationContext.getBean("student4");

        System.out.println(student4);

    }



}

 

(五)复杂类型的属性注入

 

1.Bean.java

package entity;



import java.util.*;



public class Bean {

    private String arr[];//数组类型

    private List<String > list;//List集合类型

    private Set<String> set;//Set集合类型

    private Map<String,Integer> map;//Map集合类型

    private Properties properties;//属性类型



    public String[] getArr() {

        return arr;

    }



    public void setArr(String[] arr) {

        this.arr = arr;

    }



    public List<String> getList() {

        return list;

    }



    public void setList(List<String> list) {

        this.list = list;

    }



    public Set<String> getSet() {

        return set;

    }



    public void setSet(Set<String> set) {

        this.set = set;

    }



    public Map<String, Integer> getMap() {

        return map;

    }



    public void setMap(Map<String, Integer> map) {

        this.map = map;

    }



    public Properties getProperties() {

        return properties;

    }



    public void setProperties(Properties properties) {

        this.properties = properties;

    }



    @Override

    public String toString() {

        return "Bean{" +

                "arr=" + Arrays.toString(arr) +

                ", list=" + list +

                ", set=" + set +

                ", map=" + map +

                ", properties=" + properties +

                '}';

    }

}

 

2.applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:p="http://www.springframework.org/schema/p"

       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.xsd">

   <bean id="bean" class="entity.Bean">

        <!--数组类型-->

        <property name="arr">

            <list >

                <value>aaa</value>

                <value>bbb</value>

                <value>ccc</value>

            </list>

        </property>

        <!--List集合类型-->

        <property name="list">

            <list>

                <value>111</value>

                <value>222</value>

                <value>333</value>

            </list>

        </property>

        <!--Set集合类型-->

        <property name="set">

            <set>

                <value>aaa</value>

                <value>bbb</value>

                <value>ccc</value>

            </set>

        </property>

        <!--Map集合类型-->

        <property name="map">

            <map>

                <entry key="aaa" value="111"/>

                <entry key="bbb" value="222"/>

                <entry key="ccc" value="333"/>

            </map>

        </property>

        <!--属性类型-->

        <property name="properties">

            <props>

                <prop key="username">111</prop>

                <prop key="password">222</prop>

            </props>

        </property>

    </bean>



</beans>

 

3.BeanTest.java

package Test;



import entity.Bean;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;



public class BeanTest {

    @Test

    public void bean(){

        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

        Bean bean=(Bean)applicationContext.getBean("bean");

        System.out.println(bean);

    }

}
 

 

おすすめ

転載: www.cnblogs.com/dyddzhp/p/11304796.html