【发布时间】:2013-01-19 08:24:54
【问题描述】:
我有一个自定义方法注释 (@EventListener),我在具有 @Transactional 注释的类内的方法中使用它。
以下是该类的示例
@Component
@Transactional
public class someClass {
@EventListener
public void someMethod() {
}
}
该类在包含在上下文文件组件扫描中的包中。在另一个实现 ApplicationContextAware 的类中,我检查类的方法是否有我的 @EventListener 注释。出于某种奇怪的原因,当类中存在@Transactional 时,我的自定义注释丢失了。
这是我检查方法注释的方式:
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("SCANNING :::::: " + beanName);
for (Method method : bean.getClass().getMethods()) {
for(Annotation a : method.getAnnotations()) {
System.out.println("\t>>>>> " + a.toString());
}
...
有没有办法使用@Transactional 而不会弄乱它注释的类中的其他方法注释?
编辑:我在发布Spring - @Transactional - What happens in background? 后发现了这一点 - 似乎创建了某种代理,这似乎会导致我的注释“消失”。有没有办法获得对原始类的引用?
【问题讨论】: