Bean的作用域Scopes

Bean的作用域Scopes

  • img

1.单例模式 singleton(Spring默认)

每次从容器中getBean都是同一个对象 单例模式只有一个

<!--显示定义单例模式-->
<bean id="user" class="com.saxon.pojo.User" p:name="张三" p:age="18" scope="singleton"/>

测试结果true

@Test
public void test2(){
    ApplicationContext context =
        new ClassPathXmlApplicationContext("userbean.xml");
    User user = context.getBean("user", User.class);
    User user2 = context.getBean("user", User.class);
    System.out.println(user==user2);
}

2.原型模式 prototype

每次从容器中getBean都会产生一个新的对象

<bean id="user" class="com.saxon.pojo.User" p:name="张三" p:age="18" scope="prototype"/>

测试结果为false

@Test
public void test2(){
    ApplicationContext context =
        new ClassPathXmlApplicationContext("userbean.xml");
    User user = context.getBean("user", User.class);
    User user2 = context.getBean("user", User.class);
    System.out.println(user==user2);
}

session,request,application

这些只能在web开发中使用到

posted @ 2021-06-18 15:04  saxon宋  阅读(45)  评论(0)    收藏  举报