【发布时间】:2014-08-08 13:20:01
【问题描述】:
Okie 有一些第三方代码在 Spring 3.1.4 上运行,我无法更改。代码还使用lookup-method 在运行时动态注入类型。这种类型是原型范围。所有都是基于lookup-method 的服务对象创建的标准Spring 用法。
问题是在 3.1.4 上,DefaultSingletonBeanRegistry 上有很多阻塞,因为 getSingleton 方法中存在同步块。线程转储显示,当需要基于lookup-method 的注入时,执行路径会到达那里,并且会卡在那里直到他们有时间运行。
我想知道是否可以使用工厂 bean 来创建这些原型 bean,而不是将它们定义为原型 bean 本身。在工厂 bean 的工厂方法中,我将使用基于 new constructor_call() 的方法来实例化值 bean。并且还要保持factory-bean的bean id与第三方cpring配置XML中的prototype bean一致。
这种方法行得通吗?
【问题讨论】:
标签: java spring dependency-injection