我想在工厂模式启动后创建一些spring bean.例如,每隔一段时间我就有一些工作要做,我需要创建一个任务bean(可能对其他单例spring bean有依赖)并执行它.
可能有多个工作要同时执行,因此每个任务bean都需要独立(原型).
人们用它来实现这个目标吗?
正如我所看到的,我需要以某种方式与容器/ applicationContext进行交互,但我真的不想分散对applicationContext / beanfactory的注入并且到处调用getBean(“…”).
我想到了这样的事情(注意“工厂”是我想象的东西,而不是存在的东西)
cope="prototype">
然后是代码
class MyTaskExecutor
{
private Factory
也许是一个注释版本
class MyTaskExecutor
{
@Factory(MyTask.class)
private Factory
也许有类似上面的东西?或者我错过了一些基本的东西.
我意识到我可以有一个单独的MyTaskFactory并使用它来实例化使用“new”然后我必须从工厂传递所有它的家属感觉不对.
所以我想总结一下这个问题
从应用程序代码中按需创建原型spring bean的推荐方法是什么?
感谢任何输入.
Spring本身并没有为你要做的事情提供明确的支持.工厂方法XML属性和factorybean接口之类的东西仅适用于在其范围内一次性创建bean,如果您想按需创建它们,这意味着scope =“prototype”,这意味着使用getBean( ).
编辑:值得指出的是,原型范围的bean真的不是Spring的设计目标.是的,它支持它们,但使用它们并不是一种非常有启发性的体验.如果你真的想走这条路,那么它的价值是taking a look at @Configurable
.由于运行时类加载器的限制,它非常强大,但并不总是合适.
原文地址:https://www.jb51.cc/spring/431410.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。