深入理解Spring ―― Bean的更新

匿名 (未验证) 提交于 2019-12-03 00:39:02

在开发过程中,有没有遇到这样的问题,需要拿到的Bean 每次都是新创建的 那么如何配置Bean 来满足该需求呢?

在Spring Bean 的作用域有几种:

作用域 描述
singleton 该作用域将 bean 的定义的限制在每一个 Spring IoC 容器中的一个单一实例(默认)。
prototype 该作用域将单一 bean 的定义限制在任意数量的对象实例。
request 该作用域将 bean 的定义限制为 HTTP 请求。只在 web-aware Spring ApplicationContext 的上下文中有效。
session 该作用域将 bean 的定义限制为 HTTP 会话。 只在web-aware Spring ApplicationContext的上下文中有效。
global-session 该作用域将 bean 的定义限制为全局 HTTP 会话。只在 web-aware Spring ApplicationContext 的上下文中有效。

PS:该图参考于http://wiki.jikexueyuan.com/project/spring/bean-scopes.html
那么我们可以通过prototype 来实现我们要达到的效果

@Configuration public class TestBeanConfig {     @Bean("testBean")     //@Lazy     @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)     public TestBean o(){         return new TestBean();     } }

通过@Scope 配置为原型模式 SCOPE_PROTOTYPE 即可

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!