我有一个Spring bean(如果重要的话就是单例范围),我们称之为FooService。
我有一个不受Spring管理的对象Bar,但它想要使用FooService。
如何以最佳方式实施此合作? (我们假设我不喜欢applicationContext.getBean()
)的解决方案。
答案 0 :(得分:1)
在Bar构造函数中调用“new”并创建一个FooService实例供它使用。
答案 1 :(得分:1)
如果您希望在非IoC容器创建的对象中注入依赖项,则可以选择AOP。看一下Spring的@Configurable
- 我会粘贴一个关于该主题的Stack Overflow问题的链接,但我的cut-n-paste目前已被破坏。
答案 2 :(得分:0)
Spring bean理想情况下是Plain Old Java Object或POJO。如果它不是Spring管理的,那么你必须自己管理它。理想情况下调用new
或类似getInstance
方法的内容,然后自行跟踪引用。
答案 3 :(得分:0)
谁在构建Bar
实例?你没有提到这个。
如果Bar
实例需要FooService
,则必须使用构造函数或setter注入将后者注入Bar
。
如果你想让FooService
由Spring管理,而不是Bar,那么你真的只有几个选项:
Bar
实例的代码中,从applicationContext FooService
的引用
Bar
实例的生命周期。