Spring_IOC容器:注入其他类型属性2(Bean管理)

1.注入集合类型属性

1.注入数组类型属性

2.注入List集合类型属性

3.注入Map集合类型属性

4.注入Set集合类型属性

package com.tinstu.spring.collectiontype;

import java.util.List;
import java.util.Map;
import java.util.Set;

public class Sru {
    //数组类型属性
    private String[] courses;
    //2.List集合类型属性
    private List<String> list;
    //3.map集合类型的属性
    private Map<String,String> maps;
    //4.set集合类型的属性
    private Set<String> sets;
   public void setCourses(String[] courses) {
        this.courses = courses;
    }
    public void setList(List<String> list) {
        this.list = list;
    }
    public void setMaps(Map<String, String> maps) {
        this.maps = maps;
    }
    public Set<String> getSets() {
        return sets;
    }
    public void setSets(Set<String> sets) {
        this.sets = sets;
    }
}
<?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="Sru" class="com.tinstu.spring.collectiontype.Sru">
        <!--数组类型属性注入-->
        <property name="courses">
            <array>
                <value>one</value>
                <value>two</value>
            </array>
        </property>
        <!--List类型属性注入-->
        <property name="list">
            <list>
                <value>111</value>
                <value>999</value>
            </list>
        </property>
        <!--map类型注入-->
        <property name="maps">
            <map>
                <entry key="JAVA" value="java"></entry>
                <entry key="PHP" value="php"></entry>
            </map>
        </property>
        <!--set类型属性注入-->
        <property name="sets">
            <set>
                <value>MySql</value>
                <value>Redis</value>
            </set>
        </property>
    </bean>

</beans>

 在集合里面设置对象类型的值

Sru.java

    //学生所学多门课程
    private List<Course> courseList;

    public void setCourseList(List<Course> courseList) {
        this.courseList = courseList;
    }

Course.java

package com.tinstu.spring.collectiontype;
public class Course {
    private String cname;
    public void setCname(String cname) {
        this.cname = cname;
    }
}
 <!--创建对个course对象-->
    <bean id="course1" class="com.tinstu.spring.collectiontype.Course">
        <property name="cname" value="Spring"></property>
    </bean>
    <bean id="course2" class="com.tinstu.spring.collectiontype.Course">
        <property name="cname" value="MyBatis"></property>
    </bean>
        <!--注入list集合类型,值是对象-->
        <property name="courseList">
            <list>
                <ref bean="course1"></ref>
                <ref bean="course2"></ref>
            </list>
        </property>

 集合注入部分提取出来(方便在其他对象中也可使用本属性)

(1)在Spring配置文件中引入名称空间 util

<?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: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/beans/spring-util.xsd">
       
</beans>

 

(2)使用util标签完成list集合注入提取

<!--提取list集合类型属性注入-->
 <util:list id="booklist">
      <value>one</value>
      <value>two</value>
      <value>three</value>
 </util:list> 
<!--提取list集合类型属性注入使用--> 
  <bean id="book" class="com.tinstu.spring.collectiontype.Book"> 
      < property name="list" ref="booklist"></property> 
</bean>
 

 

 

 

 

阅读剩余
THE END