深入理解Spring —— Bean的更新

如何每次都取最新的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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值