Подтвердить что ты не робот

Как получить идентификатор bean из bean в Spring?

Какой самый простой способ получить идентификатор bean изнутри bean (в коде Java) без использования BeanPostProcessor для установки поля?

Единственный способ, которым я могу думать, это что-то вроде этого с помощью BeanPostProcessor:

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

Есть ли лучший способ, который не требует, чтобы я писал дополнительный класс или знал класс рассматриваемого bean? Я пробовал искать документы и в Google, но я не совсем уверен, что мне нужно искать.

Спасибо!

4b9b3361

Ответ 1

Просто реализуйте интерфейс org.springframework.beans.factory.BeanNameAware, и вы получите его автоматически. Он имеет один метод:

void setBeanName(String name)