Spring中bean之间的依赖关系depends-on
2016-11-20 12:32
519 查看
1: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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<bean id="Address" class="com.study.autowire.Address"
p:city="北京" p:street="万里长城">
</bean>
<bean id="car" class="com.study.autowire.Car"
p:brand="奥迪" p:price="360000"></bean>
<bean id="person" class="com.study.autowire.Person"
p:name="Spring容器" p:address-ref="Address" p:car-ref="car"></bean>
<!--可以使用autowire属性指定自动装配的形式,byName根据bean的名字和当前bean的setter风格的属性名进行自动装配,有匹配的则装配进来,否则不装配 -->
<bean id="person1" class="com.study.autowire.Person"
p:name="Spring容器" autowire="byName"></bean>
<!--可以使用autowire属性指定自动装配的形式,byType根据bean的名字和当前bean的类型进行自动装配,有匹配的则装配进来,否则不装配 -->
<!-- <bean id="person2" class="com.study.autowire.Person"
p:name="Spring容器" autowire="byType"></bean> -->
<bean id="address1" class="com.study.autowire.Address"
p:city="北京" p:street="万里长城">
</bean>
<!-- bean的继承,Xml文件是树形存储结构,按父节点,子节点存储的,通过parent属性指定继承哪个bean -->
<bean id="address2" p:city="广州" p:street="颐和园" parent="address1">
</bean>
<!--抽象Bean,不能被实例化,只能作为其它的模板bean,指定abstract属性=true,IOC容器将不会对其实例化 -->
<bean id="address3" class="com.study.autowire.Address" abstract="true"
p:city="北京" p:street="万里长城">
</bean>
<!-- bean的继承,Xml文件是树形存储结构,按父节点,子节点存储的,通过parent属性指定继承哪个bean -->
<bean id="address4" p:city="广州" p:street="颐和园" parent="address3">
</bean>
<bean id="car1" class="com.study.autowire.Car"
p:brand="依赖car" p:price="330000"></bean>
<!-- bean前置依赖,只有被依赖的对象被IOC容器实例化之后 -->
<bean id="person2" class="com.study.autowire.Person"
p:name="依赖注入" p:address-ref="address2" depends-on="car1"></bean>
</beans>
2: bean
package com.study.autowire;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestAutoWireMain {
public static void main(String[] args) {
ApplicationContext ctx=new ClassPathXmlApplicationContext("beans-relation.xml");
Person person1=(Person) ctx.getBean("person1");
System.out.println(person1);
// Person person2=(Person) ctx.getBean("person2");
// System.out.println(person2);
Address address1=(Address) ctx.getBean("address1");
Address address2=(Address) ctx.getBean("address2");
System.out.println(address1);
System.out.println(address2);
Address address4=(Address) ctx.getBean("address4");
System.out.println(address4);
Person person2=(Person) ctx.getBean("person2");
System.out.println(person2);
}
}
<?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:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<bean id="Address" class="com.study.autowire.Address"
p:city="北京" p:street="万里长城">
</bean>
<bean id="car" class="com.study.autowire.Car"
p:brand="奥迪" p:price="360000"></bean>
<bean id="person" class="com.study.autowire.Person"
p:name="Spring容器" p:address-ref="Address" p:car-ref="car"></bean>
<!--可以使用autowire属性指定自动装配的形式,byName根据bean的名字和当前bean的setter风格的属性名进行自动装配,有匹配的则装配进来,否则不装配 -->
<bean id="person1" class="com.study.autowire.Person"
p:name="Spring容器" autowire="byName"></bean>
<!--可以使用autowire属性指定自动装配的形式,byType根据bean的名字和当前bean的类型进行自动装配,有匹配的则装配进来,否则不装配 -->
<!-- <bean id="person2" class="com.study.autowire.Person"
p:name="Spring容器" autowire="byType"></bean> -->
<bean id="address1" class="com.study.autowire.Address"
p:city="北京" p:street="万里长城">
</bean>
<!-- bean的继承,Xml文件是树形存储结构,按父节点,子节点存储的,通过parent属性指定继承哪个bean -->
<bean id="address2" p:city="广州" p:street="颐和园" parent="address1">
</bean>
<!--抽象Bean,不能被实例化,只能作为其它的模板bean,指定abstract属性=true,IOC容器将不会对其实例化 -->
<bean id="address3" class="com.study.autowire.Address" abstract="true"
p:city="北京" p:street="万里长城">
</bean>
<!-- bean的继承,Xml文件是树形存储结构,按父节点,子节点存储的,通过parent属性指定继承哪个bean -->
<bean id="address4" p:city="广州" p:street="颐和园" parent="address3">
</bean>
<bean id="car1" class="com.study.autowire.Car"
p:brand="依赖car" p:price="330000"></bean>
<!-- bean前置依赖,只有被依赖的对象被IOC容器实例化之后 -->
<bean id="person2" class="com.study.autowire.Person"
p:name="依赖注入" p:address-ref="address2" depends-on="car1"></bean>
</beans>
2: bean
package com.study.autowire;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestAutoWireMain {
public static void main(String[] args) {
ApplicationContext ctx=new ClassPathXmlApplicationContext("beans-relation.xml");
Person person1=(Person) ctx.getBean("person1");
System.out.println(person1);
// Person person2=(Person) ctx.getBean("person2");
// System.out.println(person2);
Address address1=(Address) ctx.getBean("address1");
Address address2=(Address) ctx.getBean("address2");
System.out.println(address1);
System.out.println(address2);
Address address4=(Address) ctx.getBean("address4");
System.out.println(address4);
Person person2=(Person) ctx.getBean("person2");
System.out.println(person2);
}
}
相关文章推荐
- 一步一步学习Spring(3)-管理Bean之间的关系一(depends-on)
- Spring - bean的依赖关系(depends-on属性)
- Spring内核研究-管理bean之间的关系一(depends-on)
- spring学习小结——bean之间的关系 继承 依赖
- Spring4之Bean之间的关系(继承、依赖、引用)Bean的作用范围
- Spring配置--Bean之间的关系(继承和依赖)
- spring学习小结3——bean之间的继承,依赖关系
- 不同作用域(scope)的Spring Bean之间的依赖关系的动态代理注入
- Spring 中 bean 之间的关系:继承;依赖
- spring bean之间的关系:继承;依赖
- 用spring的注解建立bean与bean之间的关系组件装配及自动注入依赖对象
- Spring内核研究-管理bean之间的关系二(自动依赖检查)
- spring bean之间的关系:继承;依赖
- Spring学习记录(四)---bean之间的关系:继承、依赖
- Spring 框架Bean之间的关系(继承、依赖)
- 一步一步学习Spring(3)-管理Bean之间的关系二(自动依赖检查)
- 【跟我学spring 4.0 】之第五节-配置bean之间的关系:继承、依赖
- Spring的depends-on属性Bean依赖
- Spring-4 bean之间的关系----继承和依赖
- [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件