, .
, : ServiceImpl1, ServiceImpl2 ServiceImpl3
my.serviceImpl ,
my.serviceImpl = serviceImpl1
my.serviceImpl = serviceImpl2
my.serviceImpl = serviceImpl3
So, in my controller I have to use @Qualifier ($ {my.my.serviceImpl}) but this did not work, I even tried @value, but it also failed.
So, I defined the bean in my ApplicationConf.java as
@Bean(name = "myServiceImpl")
public Service myService() {
String beanName = environment.getProperty("my.serviceImpl");
if (beanName.equals("serviceImpl1")) {
return new serviceImpl1();
}
else if(beanName.equals("serviceImpl2")){
return new serviceImpl2();
}
else if(beanName.equals("serviceImpl3")){
return new serviceImpl3();
}
}
And in my controller, I used the classifier as
@Autowired
@Qualifier("myServiceImpl")
Service myService;
Not sure though if this is the best way to do this.
source
share