政务服务平台开发需要注意如何提升小程序跨平台兼容性与用户体验
681
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~