spring bean 之间的关系

<!-- 抽象bean:bean的abstract 属性为true 的bean 这样的bean不能被IOC实例化,只是用来被继承配置

若某一个bean的class 属性没有被指定,则该bean必须是一个抽象bean 即必须指定 abstract="true"

-->

<bean id="address" p:city="beijing" p:street="wudaokou" abstract="true“></bean>

<bean id="address2" class="cm.atuo.spring.bean.Address" parent="address" p:street="tongzhou"></bean>

p:属性=”xxx“的使用

<bean id="person" class="com.tat.Person p:name="tom"></bean>

---------------------------bean 之间的依赖关系

spring允许用户通过depends-on属性设定Bean前置依赖的Bean 前置依赖的Bean会在Bean实例化 之前创建好

如果前置依赖 于多个bean 则可以通过逗号 空格 或的方式配置bean 的名称

<bean id="car" class="com.atuo.spring.bean.Car" p:brand="audi" p:price="300000"></bean>

<bean id="address2" class="com.atuo.spring.bean.Address" p:street="Dazhongsi" parent="address"></bean>

<!--depends-on="car"-->

<bean id="person" class="com.atuo.spring.bean.Person" p:name="tom" p:address-ref="address2" depends-on="car"></bean>

------------------------bean 的作用域  

有一个bean

<bean id="car" class="com.auto.Car" p:name="brand" p:price="300000"></bean>

mian方法测试

ApplicationContext ac = new ClassPathXmlApplicationContext(“beans-scope.xml”);

Car car = (car)ac.getBean("car");

Car car2 = (car)ac.getBean("car");

System.out.println(car == car2);

判断结果为true 即单例模式 默认的

scope=”singleton" 单例的

指定scope="prototype" 为原型 即不是单例的

scope属性为singleton 在容器启动时就自动实例化该bean

scope="prototype" 原型 : 在容器启动时 不会自动实例化该bean  getBean方法每次都会实例化一个对象

----------------------------使用bean的scope属性来设置bean 的作用域

singleton: 默认值  容器初始时创建bean的实例 在整个容器的生命周期内只会创建一个bean

单例的

prototype:原型的 容器初始化时不创建bean的实例 而在每次请求时都会创建一个新的bean实例 并返回

猜你喜欢

转载自www.cnblogs.com/nierzhao/p/9068075.html