在不使用BeanPostProcessor设置字段的情况下,从bean内部(在Java代码中)检索bean id的最简单方法是什么?
我能想到的唯一方法就是使用BeanPostProcessor:
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
((MyBean)bean).setName(beanName);
return bean;
}
有没有更好的方法,不需要我写一个额外的类或知道有问题的bean的类?我尝试搜索文档和谷歌,但我不确定我需要寻找什么。
谢谢!
答案 0 :(得分:50)
只需实现org.springframework.beans.factory.BeanNameAware界面即可自动获取。它有一种方法:
void setBeanName(String name)