spring 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.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
	
	<!-- 配置一个Monster bean  -->
	<bean id="monster01" class="com.kcl.spring.bean.Monster" >
		<property name="id" value="100"/>
		<property name="nickname" value="牛魔王"/>
		<property name="skill" value="芭蕉扇"/>
	</bean>
	
	
	<!-- 希望创建一个monster对象,他的值和monster01一样
		注意:如果我们希望某一个bean是只用于继承,本身不能实例化,则将这个bean设置为 abstract = true
	 -->
	<bean id="monster10" class="com.kcl.spring.bean.Monster" parent="monster01"></bean>
	
	
	<!--通过构造器来配置bean对象
		方式一: 通过index 来指定参数位置
	 -->
	 <bean id="monster02" class="com.kcl.spring.bean.Monster">
	 	<constructor-arg index="0" value="200"/>
	 	<constructor-arg index="1" value="白骨精"/>
	 	<constructor-arg index="2" value="吃人"/>
	 </bean>
	 
	 <!--通过构造器来配置bean对象
		方式2: 用制定类型来指定参数位置
	 -->
	 <bean id="monster03" class="com.kcl.spring.bean.Monster">
	 	<constructor-arg type="Integer" value="300"/>
	 	<constructor-arg type="String" value="红孩儿"/>
	 	<constructor-arg type="String" value="三位真火"/>
	 </bean>
	 
	 <!-- 
	 	使用p名称控件来配置bean
	 	1.引入p名称空间标签
	 	2.
	  -->
	  
	 <bean id="monster04" class="com.kcl.spring.bean.Monster" 
	 p:id="400"
	 p:nickname="蜘蛛精"
	 p:skill="吐口水"
	 />
	 
	 <!-- 配置一个master bean对象 -->
	 <bean id="master01" class="com.kcl.spring.bean.Master">
	 	<property name="name" value="太上老君"/>
	 	<property name="monster" ref="monster01"/>
	 </bean>
	 	
	 	
	 <!-- 配置一个master bean对象 含有内部bean -->
	 <bean id="master02" class="com.kcl.spring.bean.Master">
	 	<property name="name" value="地藏王"/>
	 	<property name="monster" ref="monster04"/>
	 	<property name="monster2">
	 		<bean class="com.kcl.spring.bean.Monster">
	 			<property name="id" value="500"/>
				<property name="nickname" value="谛听"/>
				<property name="skill" value="顺风耳"/>
	 		</bean>
	 	</property>
	 </bean>
	 
	 <!-- 配置一个master bean对象 还有list集合属性 -->
	 <bean id="master03" class="com.kcl.spring.bean.Master">
	 	<property name="name" value="地藏王"/>
	 	<property name="monster" ref="monster02"/>
	 	<property name="monster2" ref="monster01"/>
	 	<property name="monsterList">
	 		<list>
	 			<ref bean="monster03"/>
	 			<ref bean="monster04"/>
	 		</list>
	 	</property>
	 </bean>
	 
	 <!-- 配置一个master bean对象 还有map集合属性 -->
	 <bean id="master04" class="com.kcl.spring.bean.Master">
	 	<property name="name" value="~地藏王~"/>
	 	<property name="monster" ref="monster02"/>
	 	<property name="monster2" ref="monster01"/>
	 	<property name="map">
	 	<map>
	 		<entry>
	 			<key>
	 				<value>monstermap01</value>
	 			</key>
	 			<ref bean="monster03"/>
	 		</entry>
	 		<entry>
	 			<key>
	 				<value>monstermap02</value>
	 			</key>
	 			<ref bean="monster04"/>
	 		</entry>
	 	</map>
	 	</property>
	 </bean>


	 <!-- 配置一个master bean对象 还有properties集合属性 -->
	 <bean id="master05" class="com.kcl.spring.bean.Master">
	 	<property name="name" value="~地藏王~"/>
	 	<property name="monster" ref="monster02"/>
	 	<property name="monster2" ref="monster01"/>
	 	<property name="ps">
		 	<props>
		 		<prop key="prokey01">牛魔王</prop>
		 		<prop key="prokey02">白骨精</prop>
		 	</props>
	 	</property>
	 </bean>
	 
	<!-- 创建list集合 -->
	<util:list id="myList">
		<value>list值1</value>
		<value>list值2</value>
	</util:list>
	
	
	<!-- 级联属性赋值 -->
	<!-- 联系而已,与内部bean有区别,内部bean是创建一个新的ban,只供自己使用 -->
	<bean id="myDog" class="com.kcl.spring.bean.Dog"/>
	<bean id="myBoy" class="com.kcl.spring.bean.Boy">
		<property name="name" value="tom"/>
		<property name="dog" ref="myDog"/>
		<!-- 级联赋值 -->
		<property name="dog.name" value="哈巴狗"/>
	</bean>
	
	
	<!-- 通过静态工厂获取bean -->
	<bean id="myMonster" class= "com.kcl.spring.bean.MyStaticFactory" factory-method="getMonster">
		<constructor-arg value="monsterkey02"/>
	</bean>
	
	<!-- 通过实例工厂获取bean对象 -->
	<bean id="myInstanceFactory" class="com.kcl.spring.bean.MyInstanceFactory"/>
	<!-- 通过myInstanceFactory获取 -->
	<bean id="myMonster2" factory-bean="myInstanceFactory" factory-method="getMonster">
		<constructor-arg value="monsterkey01"/>
	</bean>

	<!-- 使用factoryBean获取设置bean -->
	<bean id="myMonster3" class="com.kcl.spring.bean.MyFactoryBean">
		<property name="keyVal" value="monsterkey02"/>
	</bean>

	<!-- 创建一个猫的bean -->
	<bean id="myCat01" scope="prototype"  class="com.kcl.spring.bean.Cat">
	</bean>
	
	<!-- 配置自己的后置处理器 -->
	<bean id="myBeanPostProcessor" class="com.kcl.spring.bean.MyBeanPostProcessor">
	</bean>
	
	<!-- 配置一个有生命周期的bean对象 -->
	<bean id="myCat02" class="com.kcl.spring.bean.Cat" 
	destroy-method="destory"
	init-method="init">
		<property name="name" value="~糖宝~"/>
	</bean>
	

	
</beans>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值