После успешной попытки реализовать мой собственный перехватчик проектов для отслеживания ввода/выхода метода с использованием обработчика пространства имен, теперь я ищу его, где сам перехватчик определяется как другой компонент в одном и том же формате xml и мой элемент пространства имен использует ref = "interceptorBeanName". то есть я пытаюсь зарегистрировать Interceptor, который фактически делегирует другой экземпляр Interceptor, определенный в том же проекте.Овен Пространство именHandler для получения ссылки на Bean
Но как получить ссылку на перехватчик, определенную в чертеже?
Я искал в Google много часов. Но не было никакой документации о том, как это сделать в Blueprint.
Любая помощь в отношении того, как подойти к этому, будет высоко оценена.
Edit:
@Override
public ComponentMetadata decorate(Node node, ComponentMetadata compMeta,
ParserContext cxt) {
cxt.getComponentDefinitionRegistry().registerInterceptorWithComponent(compMeta, new Interceptor() {
@Override
public Object preCall(ComponentMetadata arg0, Method arg1, Object... arg2)
throws Throwable {
info_logger.info(arg1.getName() + " before call");
return null;
}
@Override
public void postCallWithReturn(ComponentMetadata arg0, Method arg1,
Object arg2, Object arg3) throws Throwable {
info_logger.info(arg1.getName() + " after call");
}
@Override
public void postCallWithException(ComponentMetadata arg0, Method arg1,
Throwable arg2, Object arg3) throws Throwable {
info_logger.info(arg1.getName() + " after exception");
}
@Override
public int getRank() {
return 0;
}
});
return compMeta;
}
Я понимаю, что вы предлагаете использовать RefMetadata, но я не мог получить то, что это MutableBeanMetadata используется и когда/как используется? Не могли бы вы рассказать. –
Я думал, что вы внедряете новый манипулятор имен, я был неправ. Я не понял ваш вопрос. –
Да. Я реализую новый обработчик пространства имен. Просто понял, что DelegateInterceptor, о котором вы упоминали, является моим собственным интерфейсом, для которого компонент должен быть создан и указан в атрибуте ref, правильно? –