1、通过继承实现bean配置信息的重用
(1)创建一个bean,abstract=“true”,指定了这个bean的配置是一个抽象的,不能获取到它的实例,只能用于被别人继承。
<bean id="person05" class="atguigu.bean.Person" abstract="true">
<property name="name" value="父类bean配置信息-许灿"></property>
<property name="gender" value="男"></property>
<property name="email" value="test@test.com"></property>
<property name="age" value="22"></property>
</bean>
(2)继承,parent指定当前bean配置信息继承于哪个bean,class可以省略。
<bean id="person06" class="atguigu.bean.Person" parent="person05">
<property name="name" value="继承父类bean配置信息-儿子"></property>
</bean>
2、bean之间的依赖(只是用于改变bean之间的先后创建顺序)
(1)原来的创建顺序为:person,book,car
(2)当添加依赖后(depends-on),创建顺序为:car,book,person
<bean id="person" class="atguigu.bean.Person" depends-on="car,book">
</bean>
<bean id="book" class="atguigu.bean.Book">
</bean>
<bean id="car" class="atguigu.bean.Car">
</bean>
3、bean的作用域:分别创建单实例和多实例的bean
(1)bean的作用域:指定bean是否为单实例,默认为单实例
<bean id="book2" class="atguigu.bean.Book" scope="prototype">
</bean>
(2)在scope中,prototype意味着多实例,并且有以下特点:
1)容器启动默认不会去创建多实例bean;
2)在获取bean的时候才会创建bean;
3)每次获取都会创建一个新的对象
(3)在scope中,singleton意味着单实例的;默认的,并且有以下特点:
1)在容器启动完成之前就已经创建好对象,保存在容器中了;
2)任何获取都是获取之前创建好的那个对象。