首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring --简单地创建Supplier<MyPrototypeBean>

Spring --简单地创建Supplier<MyPrototypeBean>
EN

Stack Overflow用户
提问于 2015-10-08 16:17:17
回答 1查看 3.6K关注 0票数 2

对于不同的豆类生命周期问题,我找不到一个好的、简单的解决方案。

我想注射一种

代码语言:javascript
复制
@Resource
private Supplier<MessageHandler> messageHandlerFactory;

@Service bean中,每次调用messageHandlerFactory.get();时都要创建一个新的MessageHandler实例(prototype,有自己的依赖项)。

我发现的名为方法注入的解决方案对于这样一个常见的任务似乎过于复杂和繁琐。

使用@Configuration类的最短和最干净的解决方案是什么?

==更新==

我刚刚意识到供应商应该是提供程序,就像JSR-330中定义的那样。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-08 20:03:42

可以将MessageHandler的作用域定义为Prototype

代码语言:javascript
复制
@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class MessageHandler {

}

并使用ObjectFactory从Singleton获取MessageHandler

代码语言:javascript
复制
@Component
public class YourSingleton {

    @Autowired
    ObjectFactory<MessageHandler> mhFactory;

    public void doSomething() {
        final MessageHandler messageHandler = mhFactory.getObject();
        // messageHandler is a prototype
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33021021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档