从Java配置中的继承上下文中引用spring bean

时间:2014-12-24 00:40:56

标签: spring spring-java-config

我正在使用注释使用Java spring配置。

如果我有一个类似于

的配置类A.
@Configuration
public  class A{

  @Bean(name="hello")
  public hello(){
     return new Hello();
  }

  @Bean(name="greeting")
  public greeting(){
     return new Greeting(hello());
  }

所以这里问候bean作为依赖项获得hello。

如果我要在另一个配置类中声明问候bean,请说如何B,并从A导入配置

@Configuration
public  class A{

  @Bean(name="hello")
  public hello(){
     return new Hello();
  }
}

@Configuration
@Import(A.class)
public  class B{

  @Bean(name="greeting")
  public greeting(){
     // what do i write here ? 
     // so that it is equivalent to 
     // return new Greeting(hello());
  }

2 个答案:

答案 0 :(得分:1)

以下应该是你所需要的。 请注意,我已将Hello bean注入方法参数。春季DI将照顾其余部分。

@Configuration
@Import(A.class)
public  class B{

  @Bean(name="greeting")
  public greeting(Hello hello){
     return new Greeting(hello);
   }

答案 1 :(得分:0)

回答我自己的问题:

应该可以在B中使用@Autowired注释。

@Configuration
@Import(A.class)
public  class B{

  @Autowired 
  Hello hello;

  @Bean(name="greeting")
  public greeting(){
     return new Greeting(hello);
  }