spring 05-Spring框架依赖集合注入
本文内容纲要:
- 实现普通数组的注入- 定义一个Dept类
- 修改applicationContext.xml文件,进行Dept类对象的定义
- 测试程序
- 输出结果
- 实现set集合的注入
- 定义一个Dept类
- 修改applicationContext.xml文件,进行Dept类对象的定义
- 测试程序testDeptConstructor,输出结果
- 实现Map集合的注入
- 定义一个Dept类
- 修改applicationContext.xml文件,进行Dept类对象的定义
- 测试程序testDeptConstructor,输出结果
- 实现Properties的注入
- 定义一个Dept类
- 修改applicationContext.xml文件,进行Dept类对象的定义
- 测试程序testDeptConstructor,输出结果
- 实现集合之间的引用注入
- 定义一个Dept类
- 修改applicationContext.xml文件,进行Dept类对象的定义
- 测试程序
- 输出结果
实现普通数组的注入
定义一个Dept类
package cn.liang.vo;
import java.util.List;
public class Dept {
private Integer deptno ;
private String dname ;
private String loc ;
private List<String> group;
public List<String> getGroup() {
return group;
}
public void setGroup(List<String> group) {
this.group = group;
}
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
@Override
public String toString() {
return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc + ", group=" + group + "]";
}
}
修改applicationContext.xml文件,进行Dept类对象的定义
在Spring里面吧数组和List作为同等的对待
使用array标签定义groups
groupOne
groupTwo 使用list标签定义groups
groupOne
groupTwo 测试程序
package cn.liang.test;
import org.apache.log4j.Logger;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.liang.service.IMessageService;
import cn.liang.vo.Dept;
import cn.liang.vo.Emp;
import junit.framework.TestCase;
public class TestMessageService2 {
private static ApplicationContext ctx = null ;
static {
ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
}
@Test
public void testDeptConstructor() {
Dept dept = (Dept) ctx.getBean("dept",Dept.class) ;
Logger.getLogger(TestMessageService.class).info(dept);
Logger.getLogger(TestMessageService.class).info(dept.getGroups().getClass().getName());
}
}
输出结果
2018-11-29 17:01:45,747 INFO [cn.liang.test.TestMessageService] - Dept [deptno=10, dname=Development department, loc=Guangzhou, groups=[groupOne, groupTwo]]
2018-11-29 17:01:45,751 INFO [cn.liang.test.TestMessageService] - java.util.ArrayList
实现set集合的注入
定义一个Dept类
private Set<String> groups;
public Set<String> getGroups() {
return groups;
}
public void setGroups(Set<String> groups) {
this.groups = groups;
}
修改applicationContext.xml文件,进行Dept类对象的定义
使用set标签定义groups
groupOne
groupTwo 测试程序testDeptConstructor,输出结果
2018-11-29 17:03:56,386 INFO [cn.liang.test.TestMessageService] - Dept [deptno=10, dname=Development department, loc=Guangzhou, groups=[groupOne, groupTwo]]
2018-11-29 17:03:56,387 INFO [cn.liang.test.TestMessageService] - java.util.LinkedHashSet
实现Map集合的注入
定义一个Dept类
private Map<Integer, String> groups;
public Map<Integer, String> getGroups() {
return groups;
}
public void setGroups(Map<Integer, String> groups) {
this.groups = groups;
}
修改applicationContext.xml文件,进行Dept类对象的定义
使用map标签定义groups
测试程序testDeptConstructor,输出结果
2018-11-29 17:13:21,272 INFO [cn.liang.test.TestMessageService] - Dept [deptno=10, dname=Development department, loc=Guangzhou, groups={110=GroupsOne, 120=GroupsTwo}]
2018-11-29 17:13:21,272 INFO [cn.liang.test.TestMessageService] - java.util.LinkedHashMap
实现Properties的注入
定义一个Dept类
private Properties groups;
public Properties getGroups() {
return groups;
}
public void setGroups(Properties groups) {
this.groups = groups;
}
修改applicationContext.xml文件,进行Dept类对象的定义
使用props标签定义groups
GroupsOne
GroupsTwo 测试程序testDeptConstructor,输出结果
2018-11-29 17:17:18,534 INFO [cn.liang.test.TestMessageService] - Dept [deptno=10, dname=Development department, loc=Guangzhou, groups={110=GroupsOne, 120=GroupsTwo}]
2018-11-29 17:17:18,535 INFO [cn.liang.test.TestMessageService] - java.util.Properties
实现集合之间的引用注入
定义一个Dept类
package cn.liang.vo;
import java.util.List;
public class Dept {
private Integer deptno ;
private String dname ;
private String loc ;
private List<Emp> emps ;
public void setEmps(List<Emp> emps) {
this.emps = emps;
}
public List<Emp> getEmps() {
return emps;
}
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
@Override
public String toString() {
return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc + ", emps=" + emps + "]";
}
}
修改applicationContext.xml文件,进行Dept类对象的定义
<bean id="emp" class="cn.liang.vo.Emp">
<property name="empno" value="5678"/>
<property name="ename" value="SMITH"/>
<property name="sal" value="800.00"/>
</bean>
<bean id="dept" class="cn.liang.vo.Dept">
<property name="deptno" value="10"/>
<property name="dname" value="Development department"/>
<property name="loc" value="Guangzhou"/>
<property name="emps">
<list>
<ref bean="emp"/> <!-- 表示引用一个其它定义的bean -->
<!-- 描述的是一个内部的Bean,这个Bean只能够被这个Dept类定义使用 -->
<bean class="cn.liang.vo.Emp">
<property name="empno" value="1234"/>
<property name="ename" value="Liang"/>
<property name="sal" value="18000.00"/>
</bean>
</list>
</property>
</bean>
测试程序
package cn.liang.test;
import org.apache.log4j.Logger;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.liang.vo.Dept;
import cn.liang.vo.Emp;
import junit.framework.TestCase;
public class TestMessageService2 {
private static ApplicationContext ctx = null ;
static {
ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
}
@Test
public void testDeptConstructor() {
Dept dept = (Dept) ctx.getBean("dept",Dept.class) ;
Logger.getLogger(TestMessageService.class).info(dept);
Logger.getLogger(TestMessageService.class).info(dept.getEmps().getClass().getName());
}
}
输出结果
2018-11-29 17:29:11,596 INFO [cn.liang.test.TestMessageService] - Dept [deptno=10, dname=Development department, loc=Guangzhou, emps=[Emp [empno=5678, ename=SMITH, sal=800.0, dept=null], Emp [empno=1234, ename=Liang, sal=18000.0, dept=null]]]
2018-11-29 17:29:11,599 INFO [cn.liang.test.TestMessageService] - java.util.ArrayList
本文内容总结:实现普通数组的注入,定义一个Dept类,修改applicationContext.xml文件,进行Dept类对象的定义,测试程序,输出结果,实现set集合的注入,定义一个Dept类,修改applicationContext.xml文件,进行Dept类对象的定义,测试程序testDeptConstructor,输出结果,实现Map集合的注入,定义一个Dept类,修改applicationContext.xml文件,进行Dept类对象的定义,测试程序testDeptConstructor,输出结果,实现Properties的注入,定义一个Dept类,修改applicationContext.xml文件,进行Dept类对象的定义,测试程序testDeptConstructor,输出结果,实现集合之间的引用注入,定义一个Dept类,修改applicationContext.xml文件,进行Dept类对象的定义,测试程序,输出结果,
原文链接:https://www.cnblogs.com/liangjingfu/p/10039854.html
以上是 spring 05-Spring框架依赖集合注入 的全部内容, 来源链接: utcz.com/z/296009.html