Spring 配置文件中 constructir -arg 和 property 的使用案例

来源:互联网 发布:双开软件哪个好 编辑:程序博客网 时间:2024/05/16 15:22

http://blog.csdn.net/guoxilen/article/details/22752707

一、说明
    constructor-arg:通过构造函数注入。 
    property:通过setter对应的方法注入。

二、constructor-arg的使用示例

    1、Model代码:

[java] view plain copy
print?
  1. public class Student {  
  2.     private Integer id;  
  3.     private String name;  
  4.     private List<String> dream;  
  5.     private Map<String, Integer> score;  
  6.     private boolean graduation;  
  7.   
  8.     public Student() {  
  9.     }  
  10.   
  11.     public Student(Integer id, String name, List<String> dream,  
  12.             Map<String, Integer> score, boolean graduation) {  
  13.         this.id = id;  
  14.         this.name = name;  
  15.         this.dream = dream;  
  16.         this.score = score;  
  17.         this.graduation = graduation;  
  18.     }  
  19.   
  20.     @Override  
  21.     public String toString() {  
  22.         return “Student [id=” + id + “, name=” + name + “, dream=” + dream  
  23.                 + ”, score=” + score + “, graduation=” + graduation + “]”;  
  24.     }  
  25. }  
public class Student {    private Integer id;    private String name;    private List<String> dream;    private Map<String, Integer> score;    private boolean graduation;    public Student() {    }    public Student(Integer id, String name, List<String> dream,            Map<String, Integer> score, boolean graduation) {        this.id = id;        this.name = name;        this.dream = dream;        this.score = score;        this.graduation = graduation;    }    @Override    public String toString() {        return "Student [id=" + id + ", name=" + name + ", dream=" + dream                + ", score=" + score + ", graduation=" + graduation + "]";    }}
    2、xml配置:

[html] view plain copy
print?
  1. <bean id=”student”class=”com.rc.sp.Student”>  
  2.     <constructor-argnameconstructor-argname=“id” value=“1”/>  
  3.     <constructor-argnameconstructor-argname=“name” value=“student”/>  
  4.     <constructor-argnameconstructor-argname=“dream”>  
  5.         <list>  
  6.             <value>soldier</value>  
  7.             <value>scientist</value>  
  8.             <value>pilot</value>  
  9.         </list>  
  10.     </constructor-arg>  
  11.     <constructor-argnameconstructor-argname=“score”>  
  12.         <map>  
  13.             <entrykeyentrykey=“math” value=“90”/>  
  14.             <entrykeyentrykey=“english” value=“85”/>  
  15.         </map>  
  16.     </constructor-arg>  
  17.     <constructor-argnameconstructor-argname=“graduation” value=“false”/>  
  18. </bean>  
<bean id="student"class="com.rc.sp.Student">    <constructor-argname="id" value="1"/>    <constructor-argname="name" value="student"/>    <constructor-argname="dream">        <list>            <value>soldier</value>            <value>scientist</value>            <value>pilot</value>        </list>    </constructor-arg>    <constructor-argname="score">        <map>            <entrykey="math" value="90"/>            <entrykey="english" value="85"/>        </map>    </constructor-arg>    <constructor-argname="graduation" value="false"/></bean>
    说明:<constructor-arg name=”id” value=”1”/>也可以改成<constructor-arg index=”0” value=”1”/>方式;boolean的值既可以用0/1填充,也可以用true/false填充。


三、property的使用示例
    1、Model代码:

[java] view plain copy
print?
  1. public class Teacher {  
  2.     private Integer id;  
  3.     private String name;  
  4.   
  5.     public Integer getId() {  
  6.         return id;  
  7.     }  
  8.   
  9.     public void setId(Integer id) {  
  10.         this.id = id;  
  11.     }  
  12.   
  13.     public String getName() {  
  14.         return name;  
  15.     }  
  16.   
  17.     public void setName(String name) {  
  18.         this.name = name;  
  19.     }  
  20.   
  21.     @Override  
  22.     public String toString() {  
  23.         return “Teacher [id=” + id + “, name=” + name + “]”;  
  24.     }  
  25. }  
public class Teacher {    private Integer id;    private String name;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        return "Teacher [id=" + id + ", name=" + name + "]";    }}
    2、xml配置:

[html] view plain copy
print?
  1. <bean id=“teacher” class=“com.rc.sp.Teacher”>  
  2.     <property name=“id” value=“1”></property>  
  3.     <property name=“name” value=“teacher”></property>  
  4. </bean>  
<bean id="teacher" class="com.rc.sp.Teacher">    <property name="id" value="1"></property>    <property name="name" value="teacher"></property></bean>
四、Test
    1、测试代码:

[java] view plain copy
print?
  1. public class Run {  
  2.     public static void main(String[] args) {  
  3.         ApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext.xml”);  
  4.         Student student = (Student) context.getBean(”student”);  
  5.         System.out.println(student);  
  6.         Teacher teacher = (Teacher) context.getBean(”teacher”);  
  7.         System.out.println(teacher);  
  8.     }  
  9. }  
public class Run {    public static void main(String[] args) {        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");        Student student = (Student) context.getBean("student");        System.out.println(student);        Teacher teacher = (Teacher) context.getBean("teacher");        System.out.println(teacher);    }}

    2、输出结果:

[html] view plain copy
print?
  1. Student [id=1name=studentdream=[soldier, scientist, pilot],score={math=90english=85}, graduation=false]  
  2. Teacher [id=1name=teacher]  
Student [id=1, name=student, dream=[soldier, scientist, pilot],score={math=90, english=85}, graduation=false]Teacher [id=1, name=teacher]




原创粉丝点击