我有一个弹簧配置,我定义了数百个动作,扩展了MyAction
。我有一个执行服务可以查找操作的池。我无法直接使用appContext,因为每个操作都有一个或多个执行服务将使用的“密钥”,并且池会削减该依赖关系。如何确保“池”bean获得所需的所有其他bean?
所以游泳池必须能够收集所有类型为MyAction
的豆(或者说可以延伸到MyAction
的豆类)。
方法ApplicationContext.getBeansOfType()
似乎做我需要什么,但我什么时候可以安全地调用它?
如果我可以在@PostConstruct
方法中调用它,但确保bean工厂已经在当时从配置中添加了每个bean,那将会很棒吗?
注:几乎所有的豆类都是@Lazy
这看起来很有希望。让我写一个测试用例。 –
有没有办法创建这个bean而不进行组件扫描? –
@AaronDigulla你说'Foo'?您可以通过xml“创建它”,并仍然使用构造函数的“@ Inject”或“@ Autowired”注释。 您仍然需要使用MyAction扫描类或在XML中声明它们。 另一个需求(您也需要'@ PostConstruct')在您的XML中激活注释配置扫描,如 。 –