假设我有以下bean定义
@Bean
public Beehive beehive(ArrayList<Bee> bees) {
return new Beehive(bees);
}
@Bean
public ArrayList<Bee> bees() {
return new ArrayList<Bee>();
}
bees
bean方法中的beehive
是否可以自动装入?
我在问,因为我的应用程序在没有使用@Autowired
注释的情况下表现得像这样,并希望确保我理解正在发生的事情。
答案 0 :(得分:2)
Spring会自动在java bean定义中自动装配构造函数args吗?
是的,确实如此。你可以参考我在下面添加的Spring文档中的here(强调我的)。
@Bean注释方法可以有任意数量的参数 描述构建该bean所需的依赖关系。例如 如果我们的
TransferService
需要AccountRepository
我们可以 通过方法参数实现该依赖:@Configuration public class AppConfig { @Bean public TransferService transferService(AccountRepository accountRepository) { return new TransferServiceImpl(accountRepository); } }
解析机制与基于构造函数的机制完全相同 依赖注入。