例如,现在我有一个依赖类:
public classA {
@Bean(name = "s1")
public Class1 s1 {}
@Bean(name = "s2")
public Class2 s2 (@Name("s1")) {}
}
所以在classA中,有两个方法s1和s2,并且bean方法的名称分别为s1和s2。
现在我可以使用bean方法名称s2注入Class2吗? 做某事:
@Inject @Name private Class2 obj;
答案 0 :(得分:1)
您可以使用@Qualifier
。
@Configuration
public class Config {
@Bean
@Qualifier("s1")
public Class1 s1 {}
@Bean
@Qualifier("s2")
public Class2 s2 () {
Class1 s1 = s1();
// ...
}
}
然后在您的应用程序代码中基于限定符自动装配。
@Component
public class Client {
@Autowired
@Qualifier("s2")
private Class2 c2;
// ...
}
答案 1 :(得分:0)
@Configuration
public class Config {
@Bean
public Class1 s1 {
return Class1;
}
@Bean
public Class2 s2 () {
return Class2;
// ...
}
enter code here
}
下面的应用程序类具有自动连接的Bean,其方法名称为qualifier
@Component
public class Client {
@Autowired
@Qualifier("s2")
private Class2 c2;
// ...
}