spring ioc 注入List/Map等

简介:

from: http://hi.baidu.com/winters1224/item/d5fe20bd873513afeaba9322



exactList是action里的一个List<String>类型的变量。
   <property name="exactList">
    <list>
     <value>01</value>
     <value>02</value>
     <value>03</value>
     <value>04</value>
     <value>05</value>
     <value>06</value>
     <value>07</value>
     <value>08</value>
     <value>09</value>
     <value>34</value>
    </list>
   </property>
再附一个别人的例子
1.--User类
package org.stelcomtech;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class User {
private String username;
private int age;
private Home myHome;
private Home[] homes;
private List homesList;
private Set homesSet;
private Map homesMap;
public Home[] getHomes() {
return homes;
}
public void setHomes(Home[] homes) {
this.homes = homes;
}
public List getHomesList() {
return homesList;
}
public void setHomesList(List homesList) {
this.homesList = homesList;
}
public Map getHomesMap() {
return homesMap;
}
public void setHomesMap(Map homesMap) {
this.homesMap = homesMap;
}
public Set getHomesSet() {
return homesSet;
}
public void setHomesSet(Set homesSet) {
this.homesSet = homesSet;
}
public Home getMyHome() {
return myHome;
}
public void setMyHome(Home myHome) {
this.myHome = myHome;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
2.---Home类
package org.stelcomtech;
public class Home {
private String homeAddr;
public String getHomeAddr() {
return homeAddr;
}
public void setHomeAddr(String homeAddr) {
this.homeAddr = homeAddr;
}
}
3.--测试类 MainTest
package org.stelcomtech;

import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class MainTest {
public static void main(String[]args){
ApplicationContext ac=new FileSystemXmlApplicationContext("org/stelcomtech/applicationContext.xml");
User user=(User)ac.getBean("userid");
Home[] homes=user.getHomes();
System.out.println("************数组注入***************");
for(int i=0;i<homes.length;i++){
System.out.println("家庭地址:"+homes[i].getHomeAddr());
}
System.out.println("************List注入********************");
List list=user.getHomesList();
Iterator ir=list.iterator();
while(ir.hasNext()){
//Home home1=(Home)ir.next();
System.out.println("家庭地址:"+ir.next().toString());
}
System.out.println("***********Set注入******************");
Set set=user.getHomesSet();
Iterator ir1=set.iterator();
while(ir1.hasNext()){
System.out.println("家庭地址:"+ir1.next().toString());
}
System.out.println("************Map注入**************");
Map map=user.getHomesMap();

Home home11=(Home)map.get("1");
System.out.println("家庭地址:"+home11.getHomeAddr().toString());
Home home111=(Home)map.get("2");
System.out.println("家庭地址:"+home111.getHomeAddr().toString()); 
}
}
4.配置文件 applicationContext.xml
<bean id="myHome1" class="org.stelcomtech.Home" abstract="false"
lazy-init="default" dependency-check="default">
<property name="homeAddr">
<value>wuhan</value>
</property>
</bean>
<bean id="myHome2" class="org.stelcomtech.Home" abstract="false"
lazy-init="default" dependency-check="default">
<property name="homeAddr">
<value>shanghai</value>
</property>
</bean>

<!-- autowire 选择 byName时,按照Bean id 是否和类中的属性名来查找 -->
<!-- autowire 选择 byType时,按照 类的类型 来查找 -->
<bean id="userid" class="org.stelcomtech.User" abstract="false"
lazy-init="default" dependency-check="default">
<property name="username">
<value>haiyang</value>
</property>
<property name="age">
<value>22</value>
</property>

<!-- 数组注入方式 -->
<property name="homes">
<list>
<ref bean="myHome1" />
<ref bean="myHome2" />
</list>
</property>
<!-- List注入方式 -->
<property name="homesList">
<list>
<ref bean="myHome1" />
<ref bean="myHome2" />
<value>haha</value>

</list>
</property>
<!-- Set注入方式 -->
<property name="homesSet">
<set>
<value>hello</value>
<ref bean="myHome2" />
<ref bean="myHome1" />
</set>
</property>
<!-- Map注入方式 -->
<property name="homesMap">
<map>
<entry key="1">
<ref bean="myHome1" />
</entry>
<entry key="2">
<ref bean="myHome2" />
</entry>
</map>
</property>
</bean> 
</beans>
5.运行结果
log4j:WARN No appenders could be found for logger (org.springframework.context.support.FileSystemXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
************数组注入***************
家庭地址:wuhan
家庭地址:shanghai
************List注入********************
家庭地址:
家庭地址:
家庭地址:haha
***********Set注入******************
家庭地址:hello
家庭地址:
家庭地址:
************Map注入**************
家庭地址:wuhan
家庭地址:shanghai
相关文章
|
1月前
|
XML Java 测试技术
《深入理解Spring》:IoC容器核心原理与实战
Spring IoC通过控制反转与依赖注入实现对象间的解耦,由容器统一管理Bean的生命周期与依赖关系。支持XML、注解和Java配置三种方式,结合作用域、条件化配置与循环依赖处理等机制,提升应用的可维护性与可测试性,是现代Java开发的核心基石。
|
9月前
|
XML Java 测试技术
Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)
Spring 第三节 IOC——基于注解配置和管理Bean 万字详解!
640 26
|
5月前
|
XML 人工智能 Java
Spring IOC 到底是什么?
IOC(控制反转)是一种设计思想,主要用于解耦代码,简化依赖管理。其核心是将对象的创建和管理交给容器处理,而非由程序直接硬编码实现。通过IOC,开发者无需手动new对象,而是由框架负责实例化、装配和管理依赖对象。常见应用如Spring框架中的BeanFactory和ApplicationContext,它们实现了依赖注入和动态管理功能,提升了代码的灵活性与可维护性。
191 1
|
XML Java 数据格式
京东一面:spring ioc容器本质是什么? ioc容器启动的步骤有哪些?
京东一面:spring ioc容器本质是什么? ioc容器启动的步骤有哪些?
|
6月前
|
XML Java 数据格式
Spring IoC容器的设计与实现
Spring 是一个功能强大且模块化的 Java 开发框架,其核心架构围绕 IoC 容器、AOP、数据访问与集成、Web 层支持等展开。其中,`BeanFactory` 和 `ApplicationContext` 是 Spring 容器的核心组件,分别定位为基础容器和高级容器,前者提供轻量级的 Bean 管理,后者扩展了事件发布、国际化等功能。
|
11月前
|
XML Java 数据格式
【SpringFramework】Spring IoC-基于XML的实现
本文主要讲解SpringFramework中IoC和DI相关概念,及基于XML的实现方式。
246 69
|
8月前
|
Java 容器 Spring
什么是Spring IOC 和DI ?
IOC : 控制翻转 , 它把传统上由程序代码直接操控的对象的调用权交给容 器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转 移,从程序代码本身转移到了外部容器。 DI : 依赖注入,在我们创建对象的过程中,把对象依赖的属性注入到我们的类中。
|
11月前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
11月前
|
Java Spring 容器
【SpringFramework】Spring IoC-基于注解的实现
本文主要记录基于Spring注解实现IoC容器和DI相关知识。
180 21
|
11月前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
398 12

热门文章

最新文章

下一篇
oss云网关配置