spring bean的实例化与xml装配

实验训练内容(包括实验原理和操作步骤):

1定义一个学生类Student,在类中定义(id,name,required(必修课,用list实现),选修课(用map实现,可以录入专业选修,公共选修课)。

  1. 请用静态工厂实例化、设置注入完成对Student实例的装配。
  2. 请用实例工厂实例化,p命名空间注入完成对Student实例的装配。

实验源码:Student.java

package cn.huel.edu.xml;

 

import java.util.List;

import java.util.Map;

 

public class Student {

  private String id;

  private String name;

  private List<String> required;//必修

  private Map<String , String > elective;//选修

 

 

  public String getId() {

    return id;

  }

  public void setId(String id) {

    this.id = id;

  }

  public String getName() {

    return name;

  }

  public void setName(String name) {

    this.name = name;

  }

  public List<String> getRequired() {

    return required;

  }

  public void setRequired(List<String> required) {

    this.required = required;

  }

  public Map<String, String> getElective() {

    return elective;

  }

  public void setElective(Map<String, String> elective) {

    this.elective = elective;

  }

  @Override

  public String toString() {

    return "Student [id=" + id + ", name=" + name + ", required=" + required + ", Elective=" + elective + "]";

  }

  public Student(String id, String name, List<String> required, Map<String, String> elective) {

    super();

    this.id = id;

    this.name = name;

    this.required = required;

    this.elective = elective;

  }

  public Student() {

    super();

  }

 

}

bean.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" xmlns:p="http://www.springframework.org/schema/p"

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

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

  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

  http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

  <bean id="student" class="cn.edu.huel.xml.Student">

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

 

    <property name="hobbies">

      <list>

         <value>唱歌</value>

         <value>篮球</value>

 

      </list>

    </property>

    <property name="booksPropeties">

      <props>

         <prop key="prof">Java</prop>

         <prop key="story">三国演义</prop>

 

      </props>

    </property>

    <property name="travelCityesSet">

      <set>

         <value>北京</value>

         <value>杭州</value>

      </set>

    </property>

    <property name="amdireMap">

      <map>

         <entry key="speak" value="卡耐基" />

         <entry key="prof" value=" 张孝祥" />

      </map>

    </property>

  </bean>

 

  <!-- private String name; private List<String> hobbies; private Properties

    booksPropeties; private Set<String> travelCityesSet; private Map<String,

    String> amdireMap; -->

  <bean id="student1" class="cn.edu.huel.xml.Student">

    <constructor-arg name="name" value="王五" />

    <constructor-arg name="hobbies">

      <list>

         <value>唱歌C</value>

         <value>篮球C</value>

 

      </list>

    </constructor-arg>

    <constructor-arg name="booksPropeties">

      <props>

         <prop key="prof">Java_c</prop>

         <prop key="story">三国演义c</prop>

 

      </props>

    </constructor-arg>

 

    <constructor-arg name="travelCityesSet">

      <set>

         <value>北京c</value>

         <value>杭州c</value>

      </set>

    </constructor-arg>

    <constructor-arg name="amdireMap">

      <map>

         <entry key="speak" value="卡耐基c" />

         <entry key="prof" value=" 张孝祥c" />

      </map>

    </constructor-arg>

 

  </bean>

  <bean id="student2" class="cn.edu.huel.xml.Student">

    <constructor-arg index="0" value="王五_i" />

    <constructor-arg index="1">

      <list>

         <value>唱歌C_i</value>

         <value>篮球C_i</value>

 

      </list>

    </constructor-arg>

    <constructor-arg index="2">

      <props>

         <prop key="prof">Java_c_i</prop>

         <prop key="story">三国演义c_i</prop>

 

      </props>

    </constructor-arg>

 

    <constructor-arg index="3">

      <set>

         <value>北京c_i</value>

         <value>杭州c_i</value>

      </set>

    </constructor-arg>

    <constructor-arg index="4">

      <map>

         <entry key="speak" value="卡耐基c_i" />

         <entry key="prof" value=" 张孝祥c_i" />

      </map>

    </constructor-arg>

 

  </bean>

  <bean id="student3" class="cn.edu.huel.xml.Student">

    <constructor-arg type="java.lang.String" value="王五_type" />

    <constructor-arg type="java.util.List">

      <list>

         <value>唱歌C_type</value>

         <value>篮球C_i</value>

 

      </list>

    </constructor-arg>

    <constructor-arg type="java.util.Properties">

      <props>

         <prop key="prof">Java_c_i</prop>

         <prop key="story">三国演义c_i</prop>

 

      </props>

    </constructor-arg>

 

    <constructor-arg type="java.util.Set">

      <set>

         <value>北京c_i</value>

         <value>杭州c_i</value>

      </set>

    </constructor-arg>

    <constructor-arg type="java.util.Map">

      <map>

         <entry key="speak" value="卡耐基c_i" />

         <entry key="prof" value=" 张孝祥c_i" />

      </map>

    </constructor-arg>

 

  </bean>

 

<!-- utilp命名空间 -->

<!--   private String name;

  private List<String> hobbies;

  private Properties booksPropeties;

  private Set<String> travelCityesSet;

  private Map<String, String> amdireMap;

 -->

     <util:list id="hobbies" >

       <value>唱歌_util</value>

    <value>篮球_util</value>

     </util:list>

    

  <util:properties id="booksPropeties">

    <prop key="prof">Java_util</prop>

    <prop key="story">三国演义_util</prop>

  </util:properties>

 

  <util:set id="travelCityesSet">

   

      <value>北京_util</value>

      <value>杭州_util</value>

   

  </util:set>

  <util:map id="amdireMap">

   

      <entry key="speak" value="卡耐基_util" />

      <entry key="prof" value=" 张孝祥_util" />

   

 

  </util:map>

  <bean id="student4" class="cn.edu.huel.xml.Student" p:name="赵四"

  p:hobbies-ref="hobbies"  p:booksPropeties-ref="booksPropeties"

   p:travelCityesSet-ref="travelCityesSet" p:amdireMap-ref="amdireMap"

  />

 

  <bean id="student5" class="cn.edu.huel.xml.Student" c:name="赵四_c"

  c:hobbies-ref="hobbies"  c:booksPropeties-ref="booksPropeties"

   c:travelCityesSet-ref="travelCityesSet" c:amdireMap-ref="amdireMap"

  />

<bean id="student6" class="cn.edu.huel.xml.Student" c:_0="赵四_c"

  c:_1-ref="hobbies"  c:_2-ref="booksPropeties"

   c:_3-ref="travelCityesSet" c:_4-ref="amdireMap"

  />

</beans>

 

StudentTest.java

/**

 *

 */

package cn.edu.huel.xml;

 

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

/**

 *@author: Administrator

 *@function:TODO

 *@time:2019年3月6日

 */

public class StudentTest {

 

       /**

        * @param args

        */

       public static void main(String[] args) {

              // TODO Auto-generated method stub

                     ApplicationContext context=new ClassPathXmlApplicationContext("cn/edu/huel/xml/bean.xml");

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

                     System.out.println("设值注入"+student);

      

                     Student student1=(Student) context.getBean("student1");

                     System.out.println("构造参数_name"+student1);

 

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

                     System.out.println("构造参数_index"+student2);

      

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

                     System.out.println("构造参数_type"+student3);

                    

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

                     System.out.println("p命名空间:"+student4);

 

      

                     Student student5=(Student) context.getBean("student6");

                     System.out.println("c命名空间:"+student5);

 

 

       }

 

}

 

 

二、实验总结与评价

实验总结(包括实验数据分析、实验结果、实验过程中出现的问题及解决方法等):

 

实验结果:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值