基于注释的配置层次结构

时间:2011-03-21 09:26:05

标签: java spring

我们使用@Configuration类来执行基于Java的Spring配置。我正在尝试设置AnnotationConfigApplicationContext(s)的层次结构。

似乎有效。因为我可以从父上下文中自动将bean作为从其中一个子上下文创建的bean的成员。

但是我没有管理从父上下文到@Configuration类文件的自动装配bean,这非常方便。它们都是空的。

// 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)到配置文件。

我错过了什么?

3 个答案:

答案 0 :(得分:0)

我认为Spring希望您使用标准的Java层次结构规则来建立配置对象的父子关系。也就是说,让子配置类扩展父配置类。

答案 1 :(得分:0)

答案 2 :(得分:0)

为此,您的子上下文应导入父上下文,例如:

@Configuration
@Import(ParentContextConfig.class)
 public class ChildContextConfig{
    @Autowired parentBeanOne
    ...
  }

有关更多信息,请参阅有关@Configuration的春季文档。