`
TRAMP_ZZY
  • 浏览: 141581 次
社区版块
存档分类
最新评论

Spring 3.X IoC装配 Bean 的方式

 
阅读更多

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:util="http://www.springframework.org/schema/util"
	  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	  http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">

	  <!-- 整合多个配置文件 -->
	  <import resource="classpath:com/baobaotao/beanfactory/beans.xml"/>
	  <bean id="car1" class="com.baobaotao.beanfactory.Car" init-method="myInit" destroy-method="myDestroy">
	  	<property name="brand" value="redCarABC5" />
	  	<property name="color" value="red"/>
	  	<property name="maxSpeed" value="2000" />  
	  </bean>
	  
	  <!-- 使用 P 的命名空间的配置 -->
	  <bean id="car5" class="com.baobaotao.beanfactory.Car" init-method="myInit" destroy-method="myDestroy"
	  	p:brand="redCarQEW5"
	  	p:maxSpeed="200"
	  	p:price="20000"
	  	/>
	  <bean id="boss6" class="com.baobaotao.beanfactory.Boss"
	  	p:car-ref="car5"/>
	  	
	  <bean id="car2" class="com.baobaotao.beanfactory.Car">
	  <!-- 简化配置 -->
	 	<!-- <property name="maxSpeed" value="200" /> -->
	  	<property name="maxSpeed">
	  		<value>200</value>
	  	</property>
	  	<property name="brand">
	  		<value>red CA72</value>
	  	</property>
	  	<property name="price">
	  		<value>20000</value>
	  	</property>
	  </bean>
	  
	  <bean id="car3" class="com.baobaotao.beanfactory.Car">
	 	<!-- 简化配置 -->
	  	<!--<constructor-arg type="java.lang.String" value="Red CA72"/>  -->
	  	<constructor-arg type="java.lang.String">
	  		<value>Red CA72</value>
	  	</constructor-arg>
	  	<constructor-arg type="java.lang.int">
	  		<value>2000</value>
	  	</constructor-arg>
	  </bean>
	  
	  <bean id="car4" class="com.baobaotao.beanfactory.Car">
	  	<constructor-arg index="0" value="RedCA72"/>
	  	<constructor-arg index="1" value="black"/>
	  	<constructor-arg index="2" value="200"/>
	  	<!-- 构造函数参数的简化 -->
	  	<!--<constructor-arg>
	  		<ref bean="car"/>
	  	</constructor-arg>
	  	<constructor-arg ref="car"/>
	  	  -->
	  	  
	  </bean>
	  
	  <!-- 引用其他 Bean -->
	  <bean id="boss" class="com.babaotao.beanfactory.Boss">
	  <!-- 简化配置 -->
	  <!--<property name="car" ref="car1" />  -->
	  	<property name="car">
	  		<ref bean="car1"/>
	  	</property>
	  </bean>
	  <!-- 内部 Bean -->
	  <bean id="boss1" class="com.baobaotao.beanfactory.Boss">
	  	<property name="car">
	  		<bean class="com.baobaotao.beanfactory.Car">
	  			<property name="maxSpeed">
	  				<value>200</value>
	  			</property>
	  			<property name="brand">
	  				<value>red CA72</value>
	  			</property>
	  			<property name="price">
	  				<value>20000</value>
	  			</property>
	  		</bean>
	  	</property>
	  </bean>
	 <!-- 集合类型属性 List-->
	 <bean id="boss2" class="com.baobaotao.beanfactory.Boss">
	 	<property name="favourites">
	 		<list>
	 			<value>Reading</value>
	 			<value>Eatting</value>
	 			<value>Golf</value>
	 		</list>
	 	</property>
	 </bean> 
	 <!-- Map 类型的属性 -->
	 <bean id="boss3" class="com.baobaotao.beanfactory.Boss">
	 	<property name="jobs">
	 		<map>
	 		<!-- 简化配置 -->
	 		<!--<entry key="AM" value="Meeting Guset"/> -->
	 			<entry>
		 			<key><value>AM</value></key>
		 			<value>Meeting Guset</value>
	 			</entry>
	 			<entry>
	 				<key><value>PM</value></key>
	 				<value>Internal Meeting</value>
	 			</entry>
	 		</map>
	 	</property>
	 </bean>
	 <!--  Properties 类型-->
	 <bean id="boos4" class="com.baobaotao.beanfactory.Boss">
	 	<property name="mails">
	 		<props>
	 			<prop key="jobMail">zhangzhaoyu0524@163.com</prop>
	 			<prop key="lifeMail">zhangzhaoyu0624@163.com</prop>
	 		</props>
	 	</property>
	 </bean>
	 <!-- JDK 5.0 提供的强类型集合的性功能 -->
	 <bean id="boos5" class="com.baobaotao.beanfactory.Boss">
	 	<property name="jobTime">
	 		<map>
	 			<entry>
	 				<key><value>Meeting Guest</value></key>
	 				<value>124</value>
	 			</entry>
	 		</map>
	 	</property>
	 </bean>
	 <!-- 通过 util 命名空间配置集合类型 Bean -->
	 <util:list id="favoriteList1" list-class="java.util.LinkedList">
	 	<value>Reading</value>
	 	<value>Car Game</value>
	 	<value>Golf</value>
	 </util:list>
	 <util:set id="favoriteSet" set-class="java.util.HashSet">
	 	<value>Reading</value>
	 	<value>Car Game</value>
	 	<value>Golf</value>
	 </util:set>
	 <util:map id="favoriteMap" >
	 	<entry key="AM" value="Meeting Guset"/>
	 	<entry key="PM" value="Internal Meeting"/>
	 </util:map>
	 <!-- <ref> 的简化形式对应于<ref bean="XXX">,而<ref local="XXX"> 和 <ref parent="XXX">没有对应的简化形式  -->
</beans>












分享到:
评论

相关推荐

    Spring3.X编程技术与应用

    在Spring3.X中,注入方式包括构造器注入、设值注入和接口注入,其中设值注入是使用最多的方式。Spring容器负责创建和管理对象的生命周期,开发者仅需通过配置文件或注解方式来声明对象及其依赖关系,容器会在运行时...

    Spring3.x企业应用开发实战书中源码

    《Spring3.x企业应用开发实战》是一本深入探讨Spring框架在企业级应用开发中的实践书籍,作者陈雄华通过丰富的示例代码,帮助读者理解并掌握Spring的核心特性和实际运用。这里的压缩包文件包含了书中各个章节的示例...

    Spring 3.x企业应用开发实战光盘源码part02

    2. **IoC容器**:Spring的IoC容器负责创建对象、管理它们的生命周期和装配这些对象。它可以读取配置元数据(如XML或Java注解),根据这些信息创建和组装对象。 3. **AOP**:Spring的AOP支持使开发者能以声明的方式...

    Spring 3.x 企业应用开发实战-源代码

    2. **第3章**:Spring配置,讲解了XML和注解配置方式,以及如何使用Bean定义和自动装配。 3. **第4章**:依赖注入,深入讨论了DI机制,如何管理对象间的依赖关系,以及如何通过构造器、setter方法和接口实现DI。 4...

    Spring 3.x企业应用开发实战

    本书介绍了Spring 3.x版本的新特性,通过多个实例帮助开发者深入理解Spring框架的IoC(控制反转)和AOP(面向切面编程)。 Spring框架的核心特性之一是其控制反转容器(IoC Container),它负责管理对象的生命周期...

    spring3.x项目开发

    例如,在Spring 3.x中,我们可以使用`@Autowired`注解自动装配依赖,或者使用XML配置文件来声明依赖关系。 其次,面向切面编程(AOP)是Spring提供的另一个重要特性,它使得我们可以在不修改业务代码的情况下,插入...

    静通Spring4.x各章节源代码

    1. **IoC容器**:这部分源码会涵盖Bean的生命周期、自动装配、bean的定义与实例化等,帮助理解Spring如何管理对象及其依赖关系。 2. **AOP**:展示如何使用Spring AOP实现切面,包括通知类型(前置、后置、环绕、...

    spring3.2.x源码(已编译)

    在学习Spring 3.2.x源码时,可以重点关注上述知识点的实现细节,例如IoC容器如何管理Bean,AOP如何生成代理,以及MVC框架的请求处理流程等。通过阅读源码,可以深入理解Spring的工作原理,提升自己的编程技艺。同时...

    spring IOC反射装载bean

    在这个特定的"spring IOC反射装载bean"的主题中,我们将深入探讨Spring如何通过XML配置文件来加载和管理Bean,并利用Java的反射机制来实例化这些Bean。 首先,Spring容器通过读取XML配置文件来获取Bean的定义。这些...

    org.springframework.orm.hibernate3.LocalSessionFactoryBean

    3. **LocalSessionFactoryBean**:Spring框架中的一个类,用于通过Spring IoC容器来配置和创建Hibernate SessionFactory实例。该类提供了自动装配Hibernate配置文件的能力,并且可以很容易地与Spring事务管理集成。 ...

    精通spring2.x企业应用开发详解

    详细讲解Spring的Inversion of Control(控制反转)容器,包括Bean的生命周期、初始化、销毁过程以及Bean的装配方式,让读者深刻理解Spring容器的工作原理。 7. **Chapter 13:Spring Security** 本章介绍Spring ...

    spring3.x权威开发指南

    《Spring3.x权威开发指南》是一本深度剖析Spring框架3.x版本的专业书籍,旨在帮助开发者全面理解和掌握这一广泛使用的Java企业级应用框架。Spring框架以其轻量级、模块化和强大的依赖注入特性,在Java世界中占据了...

    spring在IoC容器中装配Bean详解

    Spring 在 IoC 容器中装配 Bean 详解 Spring 框架中的 IoC 容器是一个核心组件,它提供了 Bean 的装配、管理和依赖注入等功能。在 Spring 框架中,IoC 容器是 Bean 的容器,负责创建、管理和装配 Bean。在本文中,...

    Spring.3.x企业应用开发实战(完整版).part2

    第4章 在IoC容器中装配Bean 4.1 Spring配置概述 4.1.1 Spring容器高层视图 4.1.2 基于XML的配置 4.2 Bean基本配置 4.2.1 装配一个Bean 4.2.2 Bean的命名 4.3 依赖注入 4.3.1 属性注入 4.3.2 构造函数注入 4.3.3 工厂...

    第四章 在Ioc容器中装配Bean

    在探讨Spring 3.X企业应用开发过程中,第四章的内容聚焦于如何在Spring框架的核心组件——IoC(控制反转)容器中装配Bean。在Spring框架中,Bean装配是指Spring容器将应用程序中的对象进行实例化、配置以及组装的...

    Spring31.IOC简单例子

    3. **Java配置**: 从Spring 3.0开始,可以使用`@Configuration`和`@Bean`注解在Java类中定义配置。这种方式提供了更高的灵活性和类型安全,同时避免了XML的繁琐。 在这个例子中,由于没有提供具体的源代码,我们...

    尚学堂_Spring_0600_IOC_Bean_Scope

    在Spring中,Bean是那些由容器管理的对象,它们通过XML、注解或Java配置的方式定义,并由Spring容器实例化、装配和管理。 接下来,我们要了解Bean的Scope。在Spring中,Bean可以有多种Scope,包括: 1. **...

    Web项目中获取SpringBean与在非Spring组件中获取SpringBean.pdf

    在这个例子中,`SpringWiredBean`类继承了`SpringBeanAutowiringSupport`,它允许在Web环境中自动装配Bean。`@Autowired`注解会自动注入BeanFactory,由于它是静态的,所以在任何地方都可以直接通过`SpringWiredBean...

    spring3.x 实战资源教程

    根据给定的文件信息,我们可以提炼出多个与Spring 3.x相关的知识点,下面将逐一进行详细阐述。 ### 1. Spring IoC 容器的基本概念 #### 1.1 IoC容器简介 - **概念**:IoC(Inversion of Control)控制反转,是一种...

Global site tag (gtag.js) - Google Analytics