Jan*_*sch 7 java parameters spring prototype
我有一个单例Spring bean,它java.util.concurrent.Callable在运行时创建了几个任务(并行)来并行完成它的工作.现在,Callable它们被定义为单例bean中的内部类,而单例bean只是通过实例化它们来创建它们new Task(in),其中in是仅在运行时知道的参数.
现在我想将内部Task类提取到常规顶级类,因为我想让Task的call()方法成为事务性的,所以我需要它成为一个Spring bean.
我想我需要为我的单例提供某种Tasks 的工厂,但是任务必须是原型Spring bean,它将运行时值作为构造函数参数.我怎么能做到这一点?
Spring的bean工厂和new是互斥的。您不能调用 new 并期望该对象处于 Spring 的控制之下。
我的建议是将这些任务注入到单例中。也制作春豆。
您应该认识到任务本身不会是事务,但它的依赖项可以是。将它们注入到任务中并让 Spring 管理事务。