Spring将一个bean注入另一个bean

Jam*_*mes 7 java spring dependency-injection

我正在尝试将一个 bean 注入另一个使用它的 bean 中。我怎样才能做到这一点?

public class MySpringConfig{
@Bean
public MyObject getMyObject() {
  //.....

  return MyObjectInstance;
}



@Bean
public SomeObject getSomeObject(MyObject myObject) {

  //.....

  return SomeObjectInstance;
 }    
}
Run Code Online (Sandbox Code Playgroud)

dav*_*xxx 1

@Bean参数在和中的工作方式并不完全相同@Component
对于用 注释的类@Component,自动装配构造函数需要指定它们,但在声明中,如果在当前类中可以访问,@Bean则不需要提供参数来指定MyObject要使用的依赖项(尽管它将起作用),即你的情况。因此,您想通过在 @Bean 定义中
调用来直接注入 bean 。 例如,向其传递构造函数 arg :getMyObject()

@Bean
public SomeObject getSomeObject() {

  //....
  // you injected MyObject in the current bean to create
  SomeObject object = new SomeObject(getMyObject());
  //...
  return SomeObjectInstance;     
}
Run Code Online (Sandbox Code Playgroud)

并且不要忘记对类进行注释,@Configuration以使其被 Spring 考虑。