尽管其他人正确地指出,在大多数情况下,DI容器不会将未实例化的依赖项注入bean中,但这并非完全正确。
Spring有一个很棒的功能,当您使用创建时,它将自动装配bean
newA()。您只需要使用AspectJ并在
@Configurable注释中标记bean即可。
@Configurablepublic class A { @Inject private B b;}它实际上是一种很棒的功能,因为您可以执行Active Record样式的POJO,同时仍然要尊重您的DI(实际上是Spring Roo的方式)。
您还应该知道,使用Spring可以在通过AutowireCapableBeanFactory实例化bean之后以编程方式自动装配bean
。这通常是自动装配JUnit测试用例类的方式,因为JUnit创建了测试用例类。
是的,Spring不是CDI, 但从理论上讲,您可以
@Configurable为CDI 编写自己的代码,或者可以采用CDI的方式完成上述操作。
话虽这么说,以上是一种复杂的功能(并且是一种hack),正如@JanGroth所提到的那样,容器的生命周期bean管理对于其CDI,Spring,Guice等而言至关重要。



