自动装配,继承和依赖,作用域

自动装配有三种方式(实际开发中很少使用),使用autowire装配

1.byType根据类型自动装配,如果IoC容器中有多个相同类型的bean无法具体判断

2.byName根据名称自动装配

3.constructor不推荐

<!-- 通过构造器方式配置bean -->
	<bean id="car" class="com.hous.spring.Car">
		<constructor-arg value="pasate" index="0"></constructor-arg>
		<constructor-arg value="shanghai" index="1"></constructor-arg>
		<constructor-arg value="300000" type="double"></constructor-arg>
	</bean>
	
	<bean id="address" class="com.hous.spring.Address"
		p:city="suqian" p:street="shuanghe"/>
	
	<!-- 会根据名称自动装配car和address -->
	<bean id="person" class="com.hous.spring.Person" 
		p:name="box"  p:age="28" autowire="byName" />

 Bean的继承和依赖

spring允许继承父bean的配置,子bean可以覆盖父bean继承过来的属性,若只想把父bean做为模板,可以设置bean的abstract属性为true,若忽略父bean的class属性,则abstract属性必须为true

	<bean id="address" 
		p:city="suqian" p:street="shuanghe" abstract="true"/>
	
	<bean id="address2" class="com.hous.spring.Address"
		p:city="nanjing" parent="address"/>

 spring允许使用depends-on属性设置bean的前置依赖bean,如果有多个依赖可以使用逗号或者空格分开

	<bean id="address" class="com.hous.spring.Address"
		p:city="suqian" p:street="shuanghe"/>
	
	<bean id="person" class="com.hous.spring.Person"
		p:age="20" p:name="hous" depends-on="address"/>

bean的作用域singleton和prototype(request和session使用较少)

可以使用scope设置作用域

	<!-- 
		singleton:默认值,在容器初始化的时候创建,在整个bean的生命周期中只创建一次bean,单例的
		prototype:容器初始化的时候并不创建bean的实例,每次请求的时候创建bean的实例并返回
	 -->
	<bean id="person" class="com.hous.spring.Person"
		p:age="20" p:name="hous" scope="prototype"/>

猜你喜欢

转载自shuizhongyue.iteye.com/blog/2291958