Почему не сработает init метод бина, если вернуть proxy объект в postProcessBeforeInitialization?
Всем привет!
Есть Spring 5 (например).
Есть объект с init методом (с аннотацией @PostConstruct).
И допустим, что через какую-то кастомную аннотацию @Custom над классом, я сознательно превращаю оригинальный объект в прокси еще на этапе postProcessBeforeInitialization в BPP для аннотации.
Вопрос в следующем - почему не сработает init метод на этом этапе, и вообще, не верно сконфигурится бин? Какая конкретно информация будет отсутствовать в прокси, и могли бы вы мне более подробно объяснить, что конкретно произойдет в этом прокси? Cитуация разбиралась в разных видео с Евгением Борисовым, но я потерял нить. Напомните, пожалуйста. Пытаюсь разобраться. Спасибо. Если нужен пример кода, то вот:
@Custom
public SomeClass {
@PostConstruct
public void init() {
...
}
}
public CustomHandlerBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
Class<?> aClass = bean.getClass();
if (aClass.isAnnotationPresent(Custom.class)) {
return Proxy.newProxyInstance(bean.getClass().getClassLoader(), bean.getClass().getInterfaces(), new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
return method.invoke(bean, args);
}
});
}
}
}