scope 分为四种类型
singleton(加载配置文件时,所有的对象均已经被创建,多个bean指向同一个内存地址,节省空间)
prototype(使用对象的时候才被创建,资源没有得到好的复用,浪费空间)
request:请求,表示在一次http请求内有效(只适用web项目)
session:会话,表示在一个用户会话内有效(只适用web项目)
Spring 的继承(一个bean可以继承另一个bean)
<bean id="student" class="com.yk.entity.Student" scope="prototype">
<property name="id" value="100001"></property>
<property name="name" value="闫凯"></property>
<property name="age" value="27"></property>
<property name="addresses">
<list >
<ref bean="address"></ref>
<ref bean="address1"></ref>
</list>
</property>
</bean>
<bean id="address" class="com.yk.entity.Address">
<property name="name" value="建设一路"></property>
<property name="id" value="10001"></property>
</bean>
<bean id="address1" class="com.yk.entity.Address">
<property name="name" value="建设二路"></property>
<property name="id" value="10002"></property>
</bean>
<bean id="stu" class="com.yk.entity.Student" parent="student">
<property name="name" value="韩"></property>
</bean>
不同对象之间的继承
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private long id;
private String name;
private int age;
private List<Address> addresses;
}
@Data
public class User {
private long id;
private String name;
private int age;
private List<Address> addresses;
}
<bean id="student" class="com.yk.entity.Student" scope="prototype">
<property name="id" value="100001"></property>
<property name="name" value="闫凯"></property>
<property name="age" value="27"></property>
<property name="addresses">
<list >
<ref bean="address"></ref>
<ref bean="address1"></ref>
</list>
</property>
</bean>
<bean id="address" class="com.yk.entity.Address">
<property name="name" value="建设一路"></property>
<property name="id" value="10001"></property>
</bean>
<bean id="address1" class="com.yk.entity.Address">
<property name="name" value="建设二路"></property>
<property name="id" value="10002"></property>
</bean>
<bean id="stu" class="com.yk.entity.Student" parent="student">
<property name="name" value="韩"></property>
</bean>
<bean id="user" class="com.yk.entity.User" parent="stu">
</bean>
<bean id="user" class="com.yk.entity.User" depends-on="student"></bean> <bean id="student" class="com.yk.entity.Student"></bean>
Student 对象先被创建