我有以下情况:
1)两个xml配置文件,比如foo.xml
和bar.xml
。它们包含名称为ClassPathXmlApplicationContext
和fooFactory
的{{1}}个bean。每个bean依次通过其构造函数
2)客户端代码使用barFactory
和方法SingletonBeanFactoryLocator
和getInstance
来获取这些工厂。例如。 useBean
要求:barFactory中的一些bean需要访问fooFactory中的一些bean。
目前的解决方案是通过SingletonBeanFactoryLocator.getInstance("classpath:foo.xml").useBeanFactory("fooFactory");
获取对fooFactory的引用,并使用SingletonBeanFactoryLocator.getInstance("classpath:foo.xml").useBeanFactory("fooFactory");
来获取必要的bean。
问题:是否可以将getBean
中的bean从fooFactory
注入到bean中,因此barFactory
中的bean会自动获取这些依赖项?
答案 0 :(得分:1)
为什么你没有"普通"应用程序上下文xml。
在此文件中,您可以定义将在foo和bar中使用的bean。然后,您可以将此常用xml导入到两个应用程序上下文中。
这种方法会在常见的xml中创建两次定义的bean,但这可能是也可能不是问题。如果要共享SAME实例,可以将公共bean创建为单例。
答案 1 :(得分:0)
我最终在同一个.xml中定义了这些工厂并将它们链接起来。然后我将fooFactory bean正常注入barFactory bean。