Spring-02
1.bean作用域
bean的作用域有7种,最常用的有单例和原型
1.1 singleton 单例
singleton是Spring容器默认的作用域,当Bean的作用域为singleton时,Spring容器就只会存在一个共享的Bean实例。singleton作用域对于无会话状态的Bean(如Dao 组件、Service组件)来说,是最理想的选择。
singleton 1.在容器启动只创建一个 id 为student1 bean 2.并且放置在容器中,容器管理他的生命周期
<!--
声明让容器创建一个 Student类型的bean id student1
scope="singleton" 容器创建bean scope 默认的 作用域是单例singleton
singleton 1.在容器启动只创建一个 id 为student1的 bean 2.并且放置在容器中,容器管理他的生命周期
-->
<bean class="com.yth.entity.Student" id="student1" scope="singleton">
<property name="id" value="100"></property>
<property name="name" value="赵四"></property>
</bean>
测试
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("scope/student.xml");
//关于singleton 单例的测试
@Test
public void Test01(){
Student student = (Student) applicationContext.getBean("student1");
System.out.println(student);
}
1.2 propertype 原型
当用户向容器获取bean 时,容器才创建,容器只负责创建,不负责保存维护他的生命周期
<!--
声明让容器创建bean 作用域prototype
prototype 1.用户向容器获取时 创建id student2对象 2.每次都创建新的对象
3.容器只负责帮我们创建 不会放置在容器中,不会管理bean 的生命周期 ,由用户自己负责
-->
<bean class="com.yth.entity.Student" id="student2" scope="prototype">
<property name="id" value="101"></property>
<property name="name" value="广坤"></property>
</bean>
测试
//关于propertype 原型的测试
@Test
public void Test02(){
Student student1 = (Student) applicationContext.getBean("student2");
System.out.println(student1.hashCode());
Student student2 = (Student) applicationContext.getBean("student2");
System.out.println(student2.