Spring03-Bean的作用域
作者:互联网
通过Bean元素的scope属性指定Bean的作用域,常用的作用域又singleton(单例)和prototype(原型)两类。
1.singleton
singleton是Spring容器默认的作用域。该类型的Bean在Spring容器中将只有一个实例(无论有多少个Bean引用它,始终指向同一个对象)。特点是1.在容器启动之前就已经创建好对象,保存在容器中;2.任何获取的对象都是之前创建好的对象。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="student" class="com.ioc.Student"></bean>
</beans>
测试
public void test03() {
ApplicationContext ioc = new ClassPathXmlApplicationContext("ioc.xml");
System.out.println("===================================");
Student stu01 = (Student)ioc.getBean("student");
Student stu02 = (Student)ioc.getBean("student");
System.out.println(stu01.hashCode() + "====" + stu02.hashCode());
System.out.println(stu01 == stu02);
}
2.prototype
每次通过Spring容器获取的prototype定义的Bean时,容器都将创建一个新的Bean实例。特点是1.容器启动时默认不会创建prototype的Bean;2.获取的时候会创建一个新的Bean实例。
例子
public void test03() {
ApplicationContext ioc = new ClassPathXmlApplicationContext("ioc.xml");
System.out.println("===================================");
Student stu01 = (Student)ioc.getBean("student");
Student stu02 = (Student)ioc.getBean("student");
System.out.println(stu01.hashCode() + "====" + stu02.hashCode());
System.out.println(stu01 == stu02);
}
i_meteor_shower
发布了28 篇原创文章 · 获赞 44 · 访问量 2759
私信
关注
标签:stu02,stu01,作用域,Spring03,Bean,Student,ioc,out 来源: https://blog.csdn.net/i_meteor_shower/article/details/104125772