3 回答
TA贡献1875条经验 获得超3个赞
我认为你可以用这种方式做到这一点,这在我的项目中有效。
@Configuration
public class AppConfig {
@Bean
public Bean1 foo(@Qualifier("bean2") Bean2 bean2) {
return new Bean1(bean2);
}
}
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());
}
}
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 考虑。
添加回答
举报