2.spring:集合属性

1.list 

配置java.util.List类型的属性,需要指定标签,在标签里面包含有一些元素,这些标签
可以通过指定简单的常量值,通过指定对Bean的引用,通过指定内置的Bean定义,
通过指定空元素,是指可以嵌套在其他的集合

 Person.java

public class Person {
    private String name;
    private int age;
    private List cars;
  //setter...
}

 applicationContext.xml


"person3" class="com.MrChengs2.Collection.Person">
    "name" value="Mike">
    "age" value="24">
    "cars">
        
        class="com.MrChengs1.HelloSpring.car" p:brand="XinXin" p:corp="AnHui"
           p:maxSpeech="100" p:price="12345">
<ref bean="car"/> <ref bean="car1"/>

 测试:

           Person p = (Person) ctx.getBean("person3");
           System.out.println(p);
Person [name=Mike, age=24, cars=[car [brand=XinXin, corp=AnHui, price=12345.0,
maxSpeech=100],
car [brand=LeiNuo, corp=shanghai, price=0.0, maxSpeech=120],
car [brand=AoDI, corp=, price=0.0, maxSpeech=245]]]

 

2.Map

:标签里面嵌套,在中进行设置

通过标签定义,标签里面可以使用多个作为子标签,每个条目包含一个键和一个值
必须在标签里面定义
因为键和值的类型没有限制,所以可以自由的为他们指定 元素
可以将Map的键和值作为的属性定义,简单的常量可以使用key和value来定义,Bean引用通过key-ref和value-ref属性来定义
使用定义的java.util.Properties,该标签使用多个作为子标签,每个子标签必须定义key属性

PersonMap.java

public class PersonMap {
    private String name;
    private int age;
    private Map cars;
  //setter...
}

applicationContext.xml

"Person4" class="com.MrChengs2.Collection.PersonMap">
    "name" value="Rose">
    "age" value="77">
    "cars">
        
            "AA" value-ref="car">
            "BB" value-ref="car1">
        
    

测试:

          PersonMap p1 = (PersonMap) ctx.getBean("Person4");
          System.out.println(p1);
PersonMap [name=Rose, age=77, cars={AA=car [brand=LeiNuo, corp=shanghai, price=0.0, maxSpeech=120], 
BB=car [brand=AoDI, corp=, price=0.0, maxSpeech=245]}]

 

3.Properties

DatasourceProperties.java

public class DatasourceProperties {
    private Properties properties;
  //setter...
}

applicationContext.xml

"properties" class="com.MrChengs2.Collection.DatasourceProperties">
    "properties">
        
            <prop key="user">root
            "password">1234
            "jdbcUrl">jdbc:mysql://
            "driverClass">com.mysql.jdbc.Driver
        
    

测试:

          DataSource dataSource = (DataSource) ctx.getBean("properties");
          System.out.println(dataSource);

 

4.配置独立集合的Bean

使用基本的集合标签定义集合时,不能将集合作为独立的Bean定义,导致集合无法引用该集合,所以不能无法在不同的Bean之间共享
可以使用util 里的集合标签独立集合Bean,注意的是,必须在根元素添util的定义

appliactionContext.xml


"cars">
    <ref bean="car"/>
    <ref bean="car1" />



  
  
  

测试:

          Person p2 = (Person) ctx.getBean("Persons");
           System.out.println(p2);
Person [name=zhangshan, age=25, cars=[car [brand=LeiNuo, corp=shanghai, price=0.0, maxSpeech=120],
car [brand=AoDI, corp=, price=0.0, maxSpeech=245]]]

 

转载于:https://www.cnblogs.com/Mrchengs/p/10085550.html

你可能感兴趣的:(2.spring:集合属性)