我有许多ServiceImpl bean,但是我希望通过它的默认名称访问特定的bean,如
class SuperServiceImpl {}
class UserServiceImpl extends SuperServiceImpl {}
class PlaceServiceImpl extends SuperServiceImpl {}
public SuperServiceImpl getServiceImpl(String qualifierName) {
// if qualifierName="userServiceImpl"
// return UserServiceImpl
}我试图实现以下解决方案
但是我不会在getBean()引用上得到ApplicationContext方法。
发布于 2014-05-21 12:26:20
找到最简单的解决办法..。
1)我的头发是ApplicationContext
2)将默认限定符名称传递给方法getBean(defaultQualifierName)
就这样..。
谢谢你们帮我。
发布于 2014-05-20 07:50:08
return applicationContext.getBean(qualifierName, SuperServiceImpl.class) --您可能希望为SuperServiceImpl定义一个接口并使用return applicationContext.getBean(qualifierName, SuperService.class),特别是在有多个实现的情况下。
当然,要做到这一点,您需要正确地定义bean:
bean元素的bean属性。name属性重写@Bean注释。https://stackoverflow.com/questions/23752944
复制相似问题