Spring IOC容器Bean管理XML注入集合类型属性

网友投稿 271 2022-07-27


目录一、定义数组、list、map、set类型属性二、配置文件中进行对应配置三、注入对象集合类型四、提取注入集合的部分1. 引入名称空间 util2. 使用 util 标签完成集合注入的提取

一、定义数组、list、map、set类型属性

创建类、定义数组、list、map、set类型属性,生成对应set方法。

package com.pingguo.spring5.collectiontype;

import java.util.Arrays;

import java.util.List;

import java.util.Map;

import java.util.Set;

public class Student {

// 1. 数组类型的属性

private String[] courses;

// 2. list集合类型属性

private List list;

// 3. map集合类型属性

private Map maps;

// 4. set集合类型属性

private Set 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 setSets(Set sets) {

this.sets = sets;

}

public void test() {

System.out.println(Arrays.toString(courses));

System.out.println(list);

System.out.println(maps);

System.out.println(sets);

}

}

二、配置文件中进行对应配置

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

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

java开发课程

数据库课程

大周

小毛

帅胡

小姜

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

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

java开发课程

数据库课程

大周

小毛

帅胡

小姜

写一个测试类,方便测试。

package com.pingguo.spring5.testdemo;

import com.pingguo.spring5.collectiontype.Student;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestSpring5Demo2 {

@Test

public void testCollection() {

ApplicationContext context =

new ClassPathXmlApplicationContext("bean1.xml");

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

student.test();

}

}

运行测试结果

[java开发课程, 数据库课程]

[大周, 小毛]

{班长=胖洪, 采购=大周}

[帅胡, 小姜]

Process finished with exit code 0

三、注入对象集合类型

在上面集合里的内容都是用的 String,如果现在里面是对象,要如何注入?

ok,现在新增一个类 Course:

package com.pingguo.spring5.collectiontype;

public class Course {

private String course_name;

public void setCourse_name(String course_name) {

this.course_name = course_name;

}

@Override

public String toString() {

return "Course{" +

"course_name='" + course_name + '\'' +

'}';

}

}

接下来,在 Student 类里,加上这个 Course 对象属性,并且生成对应的 set 方法:

... ...

public class Student {

... ...

// 5. 学生所学多门课程

private List courseList;

public void setCourseList(List courseList) {

this.chttp://ourseList = courseList;

}

... ...

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);

}

}

操作配置文件。

在配置文件中可以新增多个 course 对象。

然后在 注入的时候使用 ref 标签。

OK,现在运行测试类,看下结果:

[java开发课程, 数据库课程]

[大周, 小毛]

{班长=胖洪, 采购=大周}

[帅胡, 小姜]

[Course{course_name='胡氏面点课'}, Course{course_name='毛氏面点课'}]

注入成功。

四、提取注入集合的部分

上面集合注入的地方,当有多个值的时候感觉还是比较麻烦的,如果可以把这部分提取出来就更好了。

现在新建一个类 Book 来演示:

package com.pingguo.spring5.collectiontype;

import java.util.List;

public class Book {

private List list;

public void setList(List list) {

this.list = list;

}

public void test() {

System.out.println(list);

}

}

1. 引入名称空间 util

为了方便,新建一个 bean2.xml,在里面先引入名称空间 util。

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

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

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

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

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

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

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

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

增加的地方:

2. 使用 util 标签完成集合注入的提取

以提取 list 集合为例。

mysql是怎样运行的

大数据测试

谷歌的软件测试之道

然后,使用提取出来的集合,使用 ref 属性。

测试一下,新建一个测试方法 testCollection2() 。

@Test

public void testCollection2() {

ApplicationContext context =

new ClassPathXmlApplicationContext("bean2.xml");

Book book = context.getBean("book", Book.class);

book.test();

}

运行测试方法:

[mysql是怎样运行的, 大数据测试, 谷歌的软件测试之道]

Process finished with exit code 0

注入成功。

以上就是Spring IOC容器Bean管理XML注入集合类型属性的详细内容,更多关于Spring IOC Bean注入XML集合的资料请关注我们其它相关文章!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring IOC容器FactoryBean工厂Bean实例
下一篇:SpringIOC容器Bean的作用域及生命周期实例(spring bean的生命周期和作用域)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~