`
Lee_Xq_
  • 浏览: 2206 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Spring - -setter方式 向bean中注入各种类型的值

阅读更多

        假设,有一个客户A:CustomerA.java

public class CustomerA {
	private Integer id; // 编号
	private String name;// 名称
	private Set<Tel> telSet; // 电话
	private List<City> cityList; // 城市
	private Map<Tel, City> telCityMap;// 电话--城市
	//省略getter,setter...
}

   

    电话类:Tel.java

public class Tel {
	private String telNum;
	//省略getter,setter
}

  

    城市类:City

public class City {
	private String cityName;
	//省略getter,setter
}

   

    重点:配置xml文件 Spring.xml

   

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	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-3.0.xsd">

	<bean id="tel1" class="b.Tel">
		<property name="telNum" value="135"></property>
	</bean>
	<bean id="tel2" class="b.Tel">
		<property name="telNum" value="136"></property>
	</bean>
	<bean id="tel3" class="b.Tel">
		<property name="telNum" value="137"></property>
	</bean>

	<bean id="city1" class="b.City">
		<property name="cityName" value="北京"></property>
	</bean>
	<bean id="city2" class="b.City">
		<property name="cityName" value="上海"></property>
	</bean>
	<bean id="city3" class="b.City">
		<property name="cityName" value="广州"></property>
	</bean>


	<bean id="customerA" class="b.CustomerA">
		<!-- 基本类型与及其封装类型都用value属性来配置值 -->
		<property name="id" value="1"></property>
		<property name="name" value="candy"></property>
		<!-- 注入引用类型的集合的值 -->
		<property name="telSet">
			<set>
				<ref bean="tel1" />
				<ref bean="tel2" />
				<ref bean="tel3" />
			</set>
		</property>
		<property name="cityList">
			<list>
				<ref bean="city1" />
				<ref bean="city2" />
				<ref bean="city3" />
			</list>
		</property>
		<property name="telCityMap">
			<map>
				<entry key-ref="tel1">
					<ref bean="city1" />
				</entry>
				<entry key-ref="tel2">
					<ref bean="city2" />
				</entry>
				<entry key-ref="tel3">
					<ref bean="city3" />
				</entry>
			</map>
		</property>
	</bean>

</beans>

   

    单元测试:TestCustomerA.java

public class TestCustomerA {

	@Test
	public void testSetValueToCustomerA() {
		// 1.启动IOC容器
		ApplicationContext ac = new ClassPathXmlApplicationContext(
				"b/spring.xml");
		//2.获取bean
		CustomerA customerA = (CustomerA) ac.getBean("customerA");
		System.out.println(customerA.getName());

		Set<Tel> telSet = customerA.getTelSet();
		for (Tel tel : telSet) {
			System.out.println(tel.getTelNum());
		}

		List<City> cityList = customerA.getCityList();
		for (City city : cityList) {
			System.out.println(city.getCityName());
		}

		Map<Tel, City> telCityMap = customerA.getTelCityMap();
		Set<Entry<Tel, City>> entrySet = telCityMap.entrySet();
		for (Entry<Tel, City> entry : entrySet) {
			System.out.println(entry.getKey().getTelNum() + "----"
					+ entry.getValue().getCityName());
		}
	}
}

    注意:在学习的时候我把所有的文件都放在了项目的b包中,在实际开发中不建议这么做,应该按照约定俗成的包命名规则来搞。所用到Spring IOC/CORE模块的jar包在附件。

 

 

分享到:
评论

相关推荐

    Spring--2.Spring 中的 Bean 配置-1

    综上所述,Spring中的Bean配置是其核心功能,涉及XML、注解和Java配置等多种方式,以及Bean的生命周期管理、依赖注入和AOP等概念。理解并熟练掌握这些知识点对于开发高效、灵活的Spring应用至关重要。

    Spring定义bean的三种方式和自动注入

    这种方式需要Bean有对应的setter方法,以便Spring进行依赖注入。 ```xml &lt;bean id="student" class="test.Student"&gt; 张三"/&gt; &lt;/bean&gt; &lt;bean id="teacher" class="test.Teacher"&gt; 李四"/&gt; &lt;/bean&gt; ``` 2....

    spring bean XML配置入门

    Spring支持通过属性值、构造器参数、setter方法等多种方式进行注入。 6. **运行环境与构建工具**: 题目描述中提到的运行环境是Eclipse,这是一个流行的Java集成开发环境,提供了便捷的代码编辑、调试等功能。而...

    Spring--2.Spring 中的 Bean 配置-3

    最后,Bean之间的依赖关系可以通过XML中的`ref`属性,Java配置中的`@Autowired`,或注解配置中的构造函数、setter方法、字段注入等方式来解决。Spring提供了基于类型、名称等多种方式进行依赖解析。 综上所述,...

    Java开发学习(六)----DI依赖注入之setter及构造器注入解析.doc

    本文将详细介绍 Java 中的依赖注入(Dependency Injection,简称 DI),特别是 setter 注入和构造器注入两种方式的使用和实现。 一、DI 依赖注入 依赖注入是指在容器中建立 Bean 与 Bean 之间的依赖关系的过程。...

    spring setter 和构造 注入 例子 spring 4.2.0

    这里,`userService` Bean的`userDao`属性将被`userDao` Bean注入。 接下来是构造器注入。这种方式是在创建对象时就提供其依赖,通过传递构造函数参数来完成。这种方式强制你在创建对象时就明确其依赖,有助于代码...

    Spring-注入依赖,AOP,自动注入Bean

    在Spring框架中,依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)是两大核心特性,同时自动注入Bean也是Spring管理对象的一种常见方式。让我们深入探讨这些概念。 首先,...

    spring的setter注入和构造注入(XML讲解以及常见错误)

    setter注入是Spring中最常用的注入方式之一。通过在类中定义setter方法,Spring容器可以在创建对象后,通过这些setter方法设置对象的属性值。以下是一个简单的例子: ```java public class User { private String ...

    day38 11-Spring的Bean的属性的注入:对象属性

    在Spring框架中,Bean的属性注入是核心功能之一,它允许我们为Bean对象设置各种属性值,以便在应用运行时创建和配置完全初始化的对象。在本篇内容中,我们将深入探讨Spring如何处理Bean的属性注入,包括对象属性的...

    struts2-spring-plugin-2.3.4.jar

    4. **Spring 的Bean 定义**:在Spring 配置文件中,我们可以为Struts 2 的Action 定义bean,包括其属性、依赖关系以及生命周期方法。这使得Action 的配置更加集中,易于管理和扩展。 5. **Action 实例的生命周期**...

    spring-core.pdf

    - **原始值**: 如字符串、整型等简单类型的值可以直接配置到Bean中。 - **对其他Bean的引用**: Bean可以引用另一个Bean作为其属性。 - **集合类型**: 支持集合类型的配置,如List、Set、Map等。 - **内部Bean**:...

    spring-context源码

    在bean初始化时,`BeanFactory`会根据`BeanDefinition`中的依赖关系,自动将其他bean注入到当前bean的属性中。这种过程称为属性设置,可以通过setter方法、构造函数或者字段注入实现。源码中的`...

    spring-beans源码

    Spring通过两种方式实现依赖注入:设值注入(Setter Injection)和构造器注入(Constructor Injection)。在解析BeanDefinition时,Spring会根据属性值和构造参数解析依赖,并在实例化Bean后进行注入。 5. **Bean...

    spring-framework-4.2.0.RELEASE官方jar包

    4. **DI(Dependency Injection,依赖注入)**:这是 IoC 的具体实现方式,Spring 通过构造函数、setter 方法或者 field 注解来注入 Bean 的依赖。 5. **数据访问集成**:Spring 支持多种数据库访问技术,包括 JDBC...

    Spring-ioc-jar

    4. **依赖注入**: 在实例化Bean的同时,Spring会根据Bean定义中的依赖关系,自动将所需的其他Bean注入到当前Bean中。依赖注入可以通过属性注入(setter方法)、构造器注入或者方法注入实现。 5. **生命周期管理**: ...

    maven-spring-ioc

    Spring还提供了一种自动装配Bean的方式,即根据类型或名称自动查找并注入依赖。这可以通过`autowire`属性实现: - `byType`:基于依赖类型自动装配。 - `byName`:基于依赖的属性名自动装配。 ### 7. Profile ...

    官方原版源码 spring-5.2.6.RELEASE.zip

    在5.2.6.RELEASE版本中,DI的实现更加灵活和强大,支持构造器注入、setter注入以及基于注解的注入方式。 3. **面向切面编程(Aspect-Oriented Programming, AOP)** AOP是Spring的重要特性,允许开发者定义“切面...

    Spring依赖注入使用setter设注入demo

    在setter注入中,Spring通过调用bean对象的setter方法来设置其依赖的属性值。以下是一个简单的步骤来展示setter注入的工作流程: 1. **定义Bean**: 创建一个类,这个类代表一个Bean,它可能包含需要注入的依赖。...

    官方原版源码 spring-framework-5.1.16.RELEASE.zip

    `spring-context`提供了上下文支持,包括bean的生命周期管理和依赖注入;`spring-beans`处理bean的定义和实例化;`spring-aop`则实现了面向切面编程,允许我们在不修改代码的情况下添加额外的行为。 其次,`spring-...

Global site tag (gtag.js) - Google Analytics