spring-Bean的作用域

1. Singleton

单例类型,IOC容器默认的作用域,整个容器都共享同一个 Bean 实例,所有对同一个Bean的请求,返回的都是该Bean的同一实例,并且在创建起容器时就自动创建了一个bean的对象,不管你是否使用,他都存在了,所以每次获取到的对象都是同一个对象.

1.1 spring 配置文件

<bean id="people" class="com.lv.pojo.People" scope="singleton"/>

1.2 测试

@Test
public void test(){
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
    People people = context.getBean("people", People.class);
    People people2 = context.getBean("people", People.class);
    System.out.println(people == people2);
}

1.3 执行结果

2.Prototype 

原形类型,表示一个Bean可以定义多个对象实例,并且在创建容器时,不会进行Bean的实例化,而是在请求时才会.所以每次对Bean的请求都会创建一个新的实例,包括将一个Bean注入到另一个Bean中,或者以程序的方式调用容器的getBean()方法获取的对象都是不同的

2.2 spring 配置文件

<bean id="people" class="com.lv.pojo.People" scope="prototype"/>

1.2 测试

与上面的测试代码相同

1.3 执行结果

3.Request 和 Session

基于 Web 环境下才会生效 Request 表示在一次 HTTP 请求中一个Bean定义对应一个实例.Session表示在一个 HTTP Session中一个Bean定义对应一个实例

posted @ 2022-01-17 11:06  从0开始丿  阅读(33)  评论(0编辑  收藏  举报