Spring 配置引用数据类型

类:Person
   public class Person {
       private String name;
       private int age;

       public String getName() {
           return name;
       }

       public void setName(String name) {
           this.name = name;
       }

       public int getAge() {
           return age;
       }

       public void setAge(int age) {
           this.age = age;
       }

       @Override
       public String toString() {
           return "Person{" +
                   "name='" + name + '\'' +
                   ", age=" + age +
                   '}';
       }
   }

类:Reference 
   public class Reference {
   private Person person;
       private Object[] arr;
       private List list;
       private Set set;
       private Map map;
       private Properties prop;

       public Person getPerson() {
           return person;
       }

       public void setPerson(Person person) {
           this.person = person;
       }

       public Object[] getArr() {
           return arr;
       }

       public void setArr(Object[] arr) {
           this.arr = arr;
       }

       public List getList() {
           return list;
       }

       public void setList(List list) {
           this.list = list;
       }

       public Set getSet() {
           return set;
       }

       public void setSet(Set set) {
           this.set = set;
       }

       public Map getMap() {
           return map;
       }

       public void setMap(Map map) {
           this.map = map;
       }

       public Properties getProp() {
           return prop;
       }

       public void setProp(Properties prop) {
           this.prop = prop;
       }

       @Override
       public String toString() {
           return "Reference{" + "\n" +
                  "  person=" + person + "\n" +
                  ", arr=" + Arrays.toString(arr) + "\n" +
                  ", list=" + list + "\n" +
                  ", set=" + set + "\n" +
                  ", map=" + map + "\n" +
                  ", prop=" + prop + "\n" +
                  '}';
       }
   }


xml配置Bean
    <?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:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:p="http://www.springframework.org/schema/p"
           xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

       <bean id="person" class="com.demo.po.Person">
           <property name="name" value="张三"/>
           <property name="age" value="25"/>
       </bean>
       <!--配置引用数据类型-->
       <bean id="Reference" class="com.demo.po.Reference">
           <property name="person" ref="person">
           <!--<property name="arr" value="1"/>--><!--单个元素-->
           <property name="arr"><!--多个元素-->
               <array>
                   <value>string</value>
                   <value>123</value>
                   <value>A</value>
                   <value>123.45</value>
                   <ref bean="person_xml"/>
               </array>
           </property>
           <property name="list">
               <list>
                   <value>string</value>
                   <value>123</value>
                   <value>A</value>
                   <value>123.45</value>
                   <ref bean="person_xml"/>
               </list>
           </property>
           <property name="set">
               <set>
                   <value>string</value>
                   <value>123</value>
                   <value>A</value>
                   <value>123.45</value>
                   <ref bean="person_xml"/>
               </set>
           </property>
           <property name="map">
               <map>
                   <entry key="key1" value="string"/>
                   <entry key="key2" value-ref="person_xml"/>
                   <!--引用类型可以作为键值-->
                   <entry key-ref="person" value-ref="person"/>
               </map>
           </property>
           <property name="prop">
               <props>
                   <prop key="key1">string</prop>
                   <prop key="key2">string</prop>
               </props>
           </property>
       </bean>
    </beans>

测试类:Junit4Test - 使用Junit4进行单元测试
    public class Junit4Test {
        private ApplicationContext context = null;

        @Before
        public void before() {
            System.out.println("before");
            //加载容器
            context = new ClassPathXmlApplicationContext("applicationContext_xml.xml");
        }

        @Test
        public void method() {
            //获取对象
            Reference reference = (Reference) context.getBean("reference");
            //打印
            System.out.println(reference);
	        /*结果如下:
            CollectionBean{
                person=Person{name='张三', age=25}
              , arr=[string, 123, A, 123.45, Person{name='null', age=0}]
              , list=[string, 123, A, 123.45, Person{name='null', age=0}]
              , set=[string, 123, A, 123.45, Person{name='null', age=0}]
              , map={key1=string,key2=Person{name='null', age=0},Person{name='null', age=0}=Person{name='null', age=0}}
              , prop={key2=string, key1=string}
            }
            */
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值