【发布时间】:2011-03-21 09:26:04
【问题描述】:
我们使用@Configuration 类来进行基于Java 的Spring 配置。我正在尝试设置AnnotationConfigApplicationContext(s) 的层次结构。
它似乎工作。我可以将父上下文中的 bean 自动装配为从子上下文之一创建的 bean 的成员。
但是,我无法将 bean 从父上下文自动连接到 @Configuration 类文件,这非常方便。它们都是空的。
// parent context config
@Configuration
public class ParentContextConfig{
@Bean parentBeanOne...
@Bean parentBeanTwo...
}
// child context config
@Configuration
public class ChildContextConfig{
@Autowired parentBeanOne
@Bean childBeanOne...
}
// a sample bean
@Component
public class ChildBeanOne{
@Autowired parentBeanTwo
}
在此示例中,我得到的是正确创建的 parentBeanTwo,而 parentBeanOne 未自动连接 (null) 到配置文件。
我错过了什么?
【问题讨论】:
-
你是如何建立父子关系的?
-
我发现如果您将这些 AnnotationConfigApplicationContext 声明为父上下文中的 bean,则自动装配到 ChildContexts 有效。但是我开始得到“循环引用?”相关异常...我无法识别任何循环引用。
-
我在注册 @configurable 配置类之前通过 setParent(ctx) 设置关系。