视频软件App开发引领数字内容创作与分享的新时代
663
2022-10-02
Spring IOC容器Bean管理XML注入集合类型属性
目录一、定义数组、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
// 3. map集合类型属性
private Map
// 4. set集合类型属性
private Set
public void setCourses(String[] courses) {
this.courses = courses;
}
public void setList(List
this.list = list;
}
public void setMaps(Map
this.maps = maps;
}
public void setSets(Set
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">
xmlns:xsi="http://w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd">
写一个测试类,方便测试。
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
public void setCourseList(List
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
public void setList(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 集合为例。
然后,使用提取出来的集合,使用 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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~