spring5入门(五):基于xml配置管理bean,注入集合


  • 注入数组、集合
# 实体类
public class Stu {

    //1 数组类型属性
    private String[] courses;

    //2 list集合类型属性
    private List list;

    //3 map集合类型属性
    private Map maps;

    //4 set集合类型属性
    private Set sets;

    public void setSets(Set sets) {
        this.sets = sets;
    }
    
    public void setCourses(String[] courses) {
        this.courses = courses;
    }
    
    public void setList(List list) {
        this.list = list;
    }
    
    public void setMaps(Map maps) {
        this.maps = maps;
    }

    public void test() {
        System.out.println(Arrays.toString(courses));
        System.out.println(list);
        System.out.println(maps);
        System.out.println(sets);
    }
    
}

# 配置bean.xml
    
        
        
            
                java课程
                数据库课程
            
        
        
        
            
                张三
                小三
            
        
        
        
            
                
                
            
        
        
        
            
                MySQL
                Redis
            
        
    

# 测试方法
    @Test
    public void testCollection1() {
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean1.xml");
        Stu stu = context.getBean("stu", Stu.class);
        stu.test();
    }

# 控制台
[java课程, 数据库课程]
[张三, 小三]
{JAVA=java, PHP=php}
[MySQL, Redis]

Process finished with exit code 0
  • 集合中注入对象
# 课程实体类
public class Course {

    private String cname; //课程名称

    public void setCname(String cname) {
        this.cname = cname;
    }

    @Override
    public String toString() {
        return "Course{" +
                "cname='" + cname + '\'' +
                '}';
    }

}

# 学生实体类
public class Stu {

    //1 数组类型属性
    private String[] courses;

    //2 list集合类型属性
    private List list;

    //3 map集合类型属性
    private Map maps;

    //4 set集合类型属性
    private Set sets;

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

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

    public void setSets(Set sets) {
        this.sets = sets;
    }

    public void setCourses(String[] courses) {
        this.courses = courses;
    }

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

    public void setMaps(Map maps) {
        this.maps = maps;
    }

    public void test() {
        System.out.println(Arrays.toString(courses));
        System.out.println(list);
        System.out.println(maps);
        System.out.println(sets);
        System.out.println(courseList);
    }

}

# 配置bean.xml
    
        
        
            
                java课程
                数据库课程
            
        
        
        
            
                张三
                小三
            
        
        
        
            
                
                
            
        
        
        
            
                MySQL
                Redis
            
        
        
        
            
                
                
            
        
    

    
    
        
    
    
        
    

# 测试方法
    @Test
    public void testCollection1() {
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean1.xml");
        Stu stu = context.getBean("stu", Stu.class);
        stu.test();
    }

# 控制台
[java课程, 数据库课程]
[张三, 小三]
{JAVA=java, PHP=php}
[MySQL, Redis]
[Course{cname='Spring5框架'}, Course{cname='MyBatis框架'}]

Process finished with exit code 0
  • 提取集合
# book实体类
public class Book {

    private List list;

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

    public void test() {
        System.out.println(list);
    }

}

# 配置bean.xml
# 添加xmlns:util="http://www.springframework.org/schema/util"  http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
<?xml version="1.0" encoding="UTF-8"?>


    
    
        易筋经
        九阴真经
        九阳神功
    

    
    
        
    



# 测试方法
    @Test
    public void testCollection2() {
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean2.xml");
        Book book = context.getBean("book", Book.class);
        book.test();
    }

# 控制台
[易筋经, 九阴真经, 九阳神功]

Process finished with exit code 0