@Named("myUniqueName")
public class ReportDashboardDao implements DashboardDAO{
//STUFF
}
当我像这样注入(inject) DashboardDAO 时,如何访问 @Named 标记内的字符串:
@Named
public class DshboardDaoConsumer(){
@Inject List<DashboardDAO> dashboardDAO;
//STUFF
}
最佳答案
通过实现 BeanNameAware .
@Named("myUniqueName")
public class ReportDashboardDao implements DashboardDAO, BeanNameAware{
//STUFF
private String beanName;
@Override
public Void setBeanName(String beanName) {
this.beanName = beanName;
}
}
这样 Spring 就可以将 beanName 注入(inject)到 bean 中。如果添加公共(public)
String getBeanName();
在您的 DashboardDAO
接口(interface), DashboardDaoConsumer
将能够获得它。在这种特殊情况下,Spring 将注入(inject)您在注解中指定的名称。
关于java - 如何访问 Spring Bean 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25301119/