Spring基础—— Bean 的作用域
2016-07-18 16:17
495 查看
一、在 Spring Config 文件中,在 <bean> 元素的 scope 属性里设置 Bean 的作用域。默认为 singleton ,单例的。
二、在不引入 spring-web-4.0.0.RELEASE.jar 包的情况下,scope 属性只有两个值:singleton 和 prototype。
1.singleton(单例)
Spring 为每个在 IOC 容器中声明的 Bean 创建一个实例,整个 IOC 容器范围都能共用。通过 getBean() 返回的对象为同一个对象。
如:
控制台输出:
com.nucsoft.spring.bean.Employee@1ed71887
com.nucsoft.spring.bean.Employee@1ed71887
2.prototype(原型),每次调用 getBean() 都会返回一个新的实例
控制台输出:
com.nucsoft.spring.bean.Employee@652e3c04
com.nucsoft.spring.bean.Employee@3e665e81
这里不对 web 环境的 Bean 的作用域进行讨论,事实上,我们常用到的也就这两种。
二、在不引入 spring-web-4.0.0.RELEASE.jar 包的情况下,scope 属性只有两个值:singleton 和 prototype。
1.singleton(单例)
Spring 为每个在 IOC 容器中声明的 Bean 创建一个实例,整个 IOC 容器范围都能共用。通过 getBean() 返回的对象为同一个对象。
如:
<bean class="com.nucsoft.spring.bean.Employee" id="employee" p:empName="emp01" p:age="12"/>
@Test public void test01() { Employee employee = ctx.getBean(Employee.class); System.out.println(employee); Employee employee2 = ctx.getBean(Employee.class); System.out.println(employee2); }
控制台输出:
com.nucsoft.spring.bean.Employee@1ed71887
com.nucsoft.spring.bean.Employee@1ed71887
2.prototype(原型),每次调用 getBean() 都会返回一个新的实例
<bean class="com.nucsoft.spring.bean.Employee" id="employee" p:empName="emp01" p:age="12" scope="prototype"/>
@Test public void test01() { Employee employee = ctx.getBean(Employee.class); System.out.println(employee); Employee employee2 = ctx.getBean(Employee.class); System.out.println(employee2); }
控制台输出:
com.nucsoft.spring.bean.Employee@652e3c04
com.nucsoft.spring.bean.Employee@3e665e81
这里不对 web 环境的 Bean 的作用域进行讨论,事实上,我们常用到的也就这两种。
相关文章推荐
- Java List中的一个List选择选择移除方法
- Java Web 技术学习主线
- 多线程Java
- java格式化时间到毫秒
- 8张图理解Java
- java数组遍历——iterator和for方法
- Scala eclipse 错误 -找不到或无法加载主类
- 遍历Map的六种方法
- JAVA中int、String的类型转换
- floodlight学习系列(1)——在Eclipse中安装运行floodlight
- java中HashSet详解
- spring4 mvc 出错
- 最频繁访问驻留缓存算法
- SpringMVC发生异常java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException
- 搭建Spring+Spring MVC+Hibernate开发框架
- java异常
- Java I/O流
- 利用jclasslib修改java编译后的.class文件
- spring boot 使用FreeMarker模板
- JAVA广度优先搜索---寻找从A点到B点最短路径