建筑标准下载网站,网站改版推荐,怎么在自己的电脑做网站,电子产品设计目录
IOC操作Bean管理XML方式#xff08;bean的作用域#xff09;
1.在Spring 里面#xff0c;设置创建 bean 实例是单实例还是多实例的方式
#xff08;1#xff09;在Spring 配置文件bean 标签里面有属性#xff08;scope#xff09;用于设置单实例还是多实例
bean的作用域
1.在Spring 里面设置创建 bean 实例是单实例还是多实例的方式
1在Spring 配置文件bean 标签里面有属性scope用于设置单实例还是多实例
2scope 属性值
3singleton 和 prototype 的区别
2.在Spring 里面默认情况下bean 是单实例对象
实验步骤
结果如下
结论
掌握 IOC操作Bean管理XML方式bean的作用域 单实例顾名思义就是一个类只有一个实例并且类负责创建自己的对象这个类提供了一种访问其唯一的对象的方式可以直接访问不需要实例化该类的对象。例如一个餐桌就是一个单实例每个人都可以用但是它仅有一个 多实例每次都新建一个对象 1.在Spring 里面设置创建 bean 实例是单实例还是多实例的方式
1在Spring 配置文件bean 标签里面有属性scope用于设置单实例还是多实例
2scope 属性值
第一个值默认值 singleton表示是单实例对象 第二个值非默认 prototype表示是多实例对象 测试效果
很明显看到两个对象的地址不一样证明不是同一个对象 3singleton 和 prototype 的区别
主要体现在创建的时机不一样
scope设置为singleton 的时候加载 spring 配置文件的时候就会创建单实例对象
scope设置为prototype 的时候不是在加载spring 配置文件时候创建对象而是在调用 getBean 方法的时候才会创建多实例对象 补充两个scope的属性使用频率很低 requestrequest表示一次请求每次创建对象会放到request的域对象中 sessionsession表示一次会话每次创建对象会放到session的域对象中 2.在Spring 里面默认情况下bean 是单实例对象
方法把一个对象获取多次然后输出输出后比较两个对象的地址如果地址相同则是单实例对象
实验步骤
在TestSpring5Demo 测试类中的代码如下
把book对象获取多次输出结果
package com.lbj.spring5.testdemo;import com.lbj.spring5.collectiontype.Book;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestSpring5Demo1 {Testpublic void tsetCollection4(){ApplicationContext contextnew ClassPathXmlApplicationContext(bean2.xml);Book book1context.getBean(book, Book.class);Book book2context.getBean(book, Book.class);System.out.println(book1);System.out.println(book2);}
}结果如下
地址相同 结论 默认情况下bean 是单实例对象 掌握
在bean中如何设置多实例和单实例