深入理解Spring —— Bean的更新
如何每次都取最新的Bean在开发过程中,有没有遇到这样的问题,需要拿到的Bean 每次都是新创建的 那么如何配置Bean 来满足该需求呢?Bean的作用域在Spring Bean 的作用域有几种:作用域描述singleton该作用域将 bean 的定义的限制在每一个 Spring IoC 容器中的一个单一实例(默认)。protot...
·
如何每次都取最新的Bean
在开发过程中,有没有遇到这样的问题,需要拿到的Bean 每次都是新创建的 那么如何配置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 即可
更多推荐
已为社区贡献1条内容
所有评论(0)