如何在Spring中从bean内部获取bean的id?

时间:2009-07-29 10:45:40

标签: java spring javabeans

在不使用BeanPostProcessor设置字段的情况下,从bean内部(在Java代码中)检索bean id的最简单方法是什么?

我能想到的唯一方法就是使用BeanPostProcessor:

public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
    ((MyBean)bean).setName(beanName);
    return bean;
}

有没有更好的方法,不需要我写一个额外的类或知道有问题的bean的类?我尝试搜索文档和谷歌,但我不确定我需要寻找什么。

谢谢!

1 个答案:

答案 0 :(得分:50)

只需实现org.springframework.beans.factory.BeanNameAware界面即可自动获取。它有一种方法:

void setBeanName(String name)