4、Bean的作用域

4.1、单例模式(singleton):Spring默认机制
单线程使用
-
编写bean.xml文件;
<!--显示设置作用域--> <bean id="user2" class="com.beyond.pojo.User" c:_0="秦疆" c:age="18" scope="singleton"/> -
测试。
import com.beyond.pojo.Student; import com.beyond.pojo.User; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MyTest { @Test public void test2(){ ApplicationContext context = new ClassPathXmlApplicationContext("userbean.xml"); User user = context.getBean("user2", User.class); User user2 = context.getBean("user2", User.class); //true System.out.println(user==user2); } }
4.2、原型模式
每次从容器中get的时候,都会产生一个新对象!
多线程使用
-
编写bean.xml文件;
<!--显示设置作用域--> <bean id="user2" class="com.beyond.pojo.User" c:_0="秦疆" c:age="18" scope="prototype"/> -
测试。
import com.beyond.pojo.Student; import com.beyond.pojo.User; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MyTest { @Test public void test2(){ ApplicationContext context = new ClassPathXmlApplicationContext("userbean.xml"); User user = context.getBean("user2", User.class); User user2 = context.getBean("user2", User.class); //false System.out.println(user==user2); } }
本文介绍了Spring框架中Bean的两种主要作用域:单例(Singleton)和原型(Prototype)。在单例模式下,Spring容器只会创建一个Bean实例,适合全局共享的对象。测试表明,同一个ID的Bean在单例模式下获取到的是同一个对象。而在原型模式中,每次从容器获取Bean时,都会创建新的对象,适用于多线程环境,测试结果为不同对象。
1063

被折叠的 条评论
为什么被折叠?



