Spring框架中集合属性为对象的注入方法
Spring框架中集合属性为对象的注入方法
- 前言
- 创建基础类
- 创建`Course`类
- 编写XML配置文件
- 创建测试类
- 执行结果
前言
在集合的属性注入中,如果注入属性为普通类型(String
、int
)等,则直接按照《集合属性注入》进行配置即可。
当集合中的值为对象(Map
、CLASS
)时,就需要使用新的注入方式。
创建基础类
首先是建立一个基础类,用作携带集合内容为类的属性值。下面的代码包含了普通属性集合和内容为对象的集合。
package com.action.spring.collectiontype;import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;public class Stud {private String[] str; private List<String> lists; private Map<String, String> maps;private Set<String> sets;private List<Course> courseList;public void setStr(String[] str) {this.str = str;}public void setLists(List<String> lists) {this.lists = lists;}public void setMaps(Map<String, String> maps) {this.maps = maps;}public void setSets(Set<String> sets) {this.sets = sets;}public void setCourseList(List<Course> courseList) {this.courseList = courseList;}public void collectiontest() {System.out.println(Arrays.toString(str));System.out.println(lists);System.out.println(maps);System.out.println(sets);System.out.println(courseList);}}
其中private List<Course> courseList;
即为类属性中List
集合中包含内容为Course
对象。
创建Course
类
创建集合List
中包含的Course
对象的类,并重写toString()
方法
package com.action.spring.collectiontype;public class Course {private String cname;public void setCname(String cname) {this.cname = cname;}@Overridepublic String toString() {return "Course [cname=" + cname + "]";}}
其中重写toString()
方法是为了能够使用println()
将对象输出。
编写XML配置文件
其中包含的<!-- 注入外部bean -->
为参考写法。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:util="http://www.springframework.org/schema/util"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.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"><!-- 注入外部bean --><bean id="userService" class="com.action.spring.service.UserService"><property name="userDao" ref="userDaoImpl"></property></bean><bean id="userDaoImpl" class="com.action.spring.dao.UserDaoImpl"></bean><!-- 集合属性注入 --><bean id="stud" class="com.action.spring.collectiontype.Stud"><property name="str"><array><value>办公室</value><value>图书馆</value></array></property><property name="lists"><list><value>list1</value><value>list2</value></list></property><property name="maps"><map><entry key="信息部" value="4楼"></entry><entry key="人资部" value="7楼"></entry></map></property><property name="sets"><set><value>sets1</value><value>sets2</value></set></property><property name="courseList"><list><ref bean="course1"></ref><ref bean="course2"></ref></list></property></bean><bean id="course1" class="com.action.spring.collectiontype.Course"><property name="cname" value="Spring5学习"></property></bean><bean id="course2" class="com.action.spring.collectiontype.Course"><property name="cname" value="MyBatise学习"></property></bean></beans>
此时需要结合外部注入bean
的方式完成类的属性注入。原本的注入方法是用<value>
标签:
<property name="lists"><list><value>list1</value><value>list2</value></list>
</property>
当集合中内容为对象时,采用<ref>
标签映入外部bean
:
<property name="courseList"><list><ref bean="course1"></ref><ref bean="course2"></ref></list>
</property>
然后对应的外部bean
创建并注入属性即可:
<bean id="course1" class="com.action.spring.collectiontype.Course"><property name="cname" value="Spring5学习"></property>
</bean>
<bean id="course2" class="com.action.spring.collectiontype.Course"><property name="cname" value="MyBatise学习"></property>
</bean>
创建测试类
创建一个测试类,用于调用xml
配置文件并调用方法。
package testdemo;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;import com.action.spring.Book;
import com.action.spring.Orders;
import com.action.spring.User;
import com.action.spring.collectiontype.Stud;
import com.action.spring.service.UserService;public class testSpring5 {@Testpublic void testAdd() throws Exception {ApplicationContext context =new FileSystemXmlApplicationContext("src/config/bean1.xml");Stud stud = context.getBean("stud", Stud.class);stud.collectiontest();}}
执行结果
Spring框架中集合属性为对象的注入方法相关推荐
- Spring框架中的控制反转和依赖注入
控制反转: 控制反转是用来降低代码之间的耦合度的,基本思想就是借助"第三方"实现具有依赖对象的解耦. 为什么需要控制反转,因为项目中对象或多或少存在耦合.控制反转的关键在于Ioc容 ...
- Spring框架中提取list集合类型属性注入
提取list集合类型属性注入 前言 引入名称空间 编写`xml`配置文件 运行结果 前言 对于某一个类型属性通用性较高的情况下,可以单独的提取出来,给需要的bean进行引用. 有关类的创建见<S ...
- Spring框架中XML配置文件注入集合(数组、LIST、MAP、SET)属性
Spring框架中XML配置文件注入集合属性 前言 创建测试类与属性 配置XML配置文件 建立调用类 调用结果 前言 某些类的属性是可能是集合,包括:数组.LIST.MAP.SET等集合,在Sprin ...
- Spring框架中级联赋值(外部属性注入)以及内部属性注入
Spring框架中级联赋值(外部属性注入)以及内部属性注入 前言 级联赋值 1.对上述外部`Bean`配置文件进行修改: 2.级联赋值第二种写法 内部`bean`属性注入 前言 Spring框架中存在 ...
- Spring框架中XML配置特殊属性注入
Spring框架中XML配置特殊属性注入 前言 创建测试类 其他类型属性 前言 Spring框架中,在通过set方式进行属性注入时,可能会遇到某些特殊字符的注入,例如:null和某些标签字符" ...
- Spring框架中的设计模式(一)
设计模式有助于遵循良好的编程实践.作为最流行的Web框架之一的Spring框架也使用其中的一些. 本文将介绍Spring Framework中使用的设计模式.这是5篇专题文章的第一部分.这次我们将发现 ...
- Spring框架中的Bean
1.什么是Bean? 在Spring框架中,Bean是指一个由Spring容器管理的对象.这个对象可以是任何一个Java类的实例,例如数据库连接.业务逻辑类.控制器等等.Bean实例的创建和管理是由S ...
- Spring依赖注入的方式、类型、Bean的作用域、自动注入、在Spring配置文件中引入属性文件...
1.Spring依赖注入的方式 通过set方法完成依赖注入 通过构造方法完成依赖注入 2.依赖注入的类型 基本数据类型和字符串 使用value属性 如果是指向另一个对象的引入 使用ref属性 User ...
- Spring框架中常用的设计模式详解
一.浅谈控制反转(IOC)与依赖注入(DI) IOC(Inversion of Control)是Spring中一个非常重要的概念,它不是什么技术,而是一种解耦的设计思想.它主要的额目的是借助于第三方 ...
最新文章
- Nginx reload的时候出现的问题/usr/local/nginx/logs/nginx.pid
- DLPack构建跨框架深度学习编译器-实现张量之间的相互转换【pytorch】
- Android7.1update.zip升级在system/bin下新增可执行文件没有可执行权限问题
- python正则表达式提取电话号码_Python学习笔模式匹配与正则表达式之电话号码和Email地址提取程序...
- 优化Hibernate所鼓励的7大措施
- scala代码示例_Scala注释示例
- 解决360Wifi无法在校园网和企业网下使用的方法
- java实现公式解析
- postgresql 数据库中 like 、ilike、~~、~~*、~、~*的含义
- 【应用推荐】如何选择适合自己的笔记应用?附热门笔记应用上手总结
- Remove WebCakeDesktop
- 前端学习-VUE框架
- 【快速上手教程1】开源编队无人机-开机测试
- 10个免费的响应式布局HTML5+CSS3模板
- (HEBUT)机械原理课程设计——自动打印机
- JAVA线程之Thread类详解
- 智能养殖物联网系统精细管理,提升养猪场收益
- 如何下载安装python3.6.7_win764位下python3.6.5应该怎么安装
- ConsensusClustering及R实现
- 这 6 款在线 PDF 转换工具,得试