原本在类前加了一个自定义的注解,后来在该类下的方法中添加了@Transactional注解,发现通过类反射获取不到自定义的注解了。
原因是增加了Transactional会增加AOP代理,IOC中的bean是代理类,不是真实bean需要通过代理获取真实的的类。
Advised advised = (Advised) applicationContext.getBean(key);
SingletonTargetSource singTarget = (SingletonTargetSource) advised
.getTargetSource();
payApiService = (PayApiService) singTarget.getTarget();
payApi = payApiService.getClass().getAnnotation(PayApi.class);