对于不同的豆类生命周期问题,我找不到一个好的、简单的解决方案。
我想注射一种
@Resource
private Supplier<MessageHandler> messageHandlerFactory;在@Service bean中,每次调用messageHandlerFactory.get();时都要创建一个新的MessageHandler实例(prototype,有自己的依赖项)。
我发现的名为方法注入的解决方案对于这样一个常见的任务似乎过于复杂和繁琐。
使用@Configuration类的最短和最干净的解决方案是什么?
==更新==
发布于 2015-10-08 20:03:42
可以将MessageHandler的作用域定义为Prototype。
@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class MessageHandler {
}并使用ObjectFactory从Singleton获取MessageHandler。
@Component
public class YourSingleton {
@Autowired
ObjectFactory<MessageHandler> mhFactory;
public void doSomething() {
final MessageHandler messageHandler = mhFactory.getObject();
// messageHandler is a prototype
}
}https://stackoverflow.com/questions/33021021
复制相似问题