为了账号安全,请及时绑定邮箱和手机立即绑定

Spring将一个bean注入另一个bean

Spring将一个bean注入另一个bean

慕雪6442864 2023-06-04 11:11:43
我正在尝试将一个 bean 注入到另一个使用它的 bean 中。我怎样才能做到这一点?public class MySpringConfig{@Beanpublic MyObject getMyObject() {  //.....  return MyObjectInstance;}@Beanpublic SomeObject getSomeObject(MyObject myObject) {  //.....  return SomeObjectInstance; }    }
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

我认为你可以用这种方式做到这一点,这在我的项目中有效。


@Configuration

public class AppConfig {


 @Bean

 public Bean1 foo(@Qualifier("bean2") Bean2 bean2) {

  return new Bean1(bean2);

 }


}


查看完整回答
反对 回复 2023-06-04
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

我认为这可能有效!


 @Configuration

 public class AppConfig {


  @Bean

  public Bean2 bean2() {

      return new Bean2();

  }


  @Bean

  @DependsOn({"bean2"})

  public Bean1 foo(@Autowired Bean2 bean2) {

     return new Bean1(bean2); // or your can write new Bean1(bean2());

  }

}



查看完整回答
反对 回复 2023-06-04
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

@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;     

}

并且不要忘记为类添加注释@Configuration以使其被 Spring 考虑。


查看完整回答
反对 回复 2023-06-04
  • 3 回答
  • 0 关注
  • 197 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信