Java 在不是由SpringContainer管理的对象中使用Springbean的正确方法是什么?
我有一个Springbean(单例范围,如果它重要的话),让我们称它为FooService 我有一个对象栏,它不是由Spring管理的,但它想使用FooServiceJava 在不是由SpringContainer管理的对象中使用Springbean的正确方法是什么?,java,spring,dependency-injection,Java,Spring,Dependency Injection,我有一个Springbean(单例范围,如果它重要的话),让我们称它为FooService 我有一个对象栏,它不是由Spring管理的,但它想使用FooService 如何以最佳方式实施这一合作?(假设我不喜欢使用applicationContext.getBean())的解决方案。在Bar构造函数中调用“new”,并创建FooService实例供其使用。Springbean理想情况下是一个普通的旧Java对象或POJO。如果它不是Spring管理的,那么您必须自己管理它。理想情况下,调用new
如何以最佳方式实施这一合作?(假设我不喜欢使用
applicationContext.getBean()
)的解决方案。在Bar构造函数中调用“new”,并创建FooService实例供其使用。Springbean理想情况下是一个普通的旧Java对象或POJO。如果它不是Spring管理的,那么您必须自己管理它。理想情况下,调用new
,或者类似于getInstance
的方法,然后自己跟踪引用。谁在构建条
实例?你没提到这个
如果Bar
实例需要FooService
,则必须使用构造函数或setter注入将后者注入Bar
如果希望FooService
由Spring管理,而不是由Bar管理,那么您实际上只有几个选项:
条
实例的代码中,从应用程序上下文向其传递对FooService
的引用Bar
实例的生命周期如果您希望在不是由IoC容器创建的对象中注入依赖项,那么AOP是一个选项。看看Spring的
@可配置的——我想粘贴一个指向该主题的堆栈溢出问题的链接,但我的剪切粘贴当前已损坏。FooService应该是单例的(它是无状态的,我不需要多个实例)。@Roman-随便。只需在Bar对象中有一个子引用,并将适当的引用分配给FooService。请参阅: