我有一个名为“basic”的bean,我想将其连接到名为callingApp的另一个bean,我该怎么做?
第一豆
@Bean
public Phone basic() {
Phone phone = new BasicPhone();
return phone;
}
第二豆
@Bean
public CallingApp callingApp() {
return new CallingApp( i want to inject bean of BasicPhone here);
}
答案 0 :(得分:1)
如果您提供的方法放在使用@Configuration
注释的java类中,您应该执行以下操作:
@Bean
public CallingApp callingApp(Phone phone) {
return new CallingApp(phone);
}
Spring将按类型自动装配依赖项Phone phone
。如果您有多个此类型的bean,则应使用@Qualifier("basic")
,因为当您通过使用@Bean
注释方法来实例化bean时,bean的名称将默认设置为方法名称
@Bean
public CallingApp callingApp(@Qualifier("basic") Phone phone) {
return new CallingApp(phone);
}
如果您想要更改Phone类型的bean的名称,您还可以使用@Qualifier
,如下所示:
@Bean
@Qualifier("basicPhone")
public Phone basic() {
Phone phone = new BasicPhone();
return phone;
}
修改强>
关于如何实现目标的简单示例如下blog post