Java注解的继承

注解继承的说明

一、首先要想Annotation能被继承,须要在注解定义的时候加上@Inherited,而且若是要被反射应用的话,就须要还有个事@Retention(RetentionPolicy.RUNTIME)标识html

二、JDK文档中说明的是:只有在类上应用Annotation才能被继承,而实际应用结果是:除了类上应用的Annotation能被继承外,没有被重写的方法的Annotation也能被继承;java

三、当方法被重写后,Annotation不会被继承app

四、Annotation的继承不能应用在接口上代理

Spring事务注解@Transactional

@Transactional 能够做用于接口、接口方法、类以及类方法上。可是 Spring 小组建议不要在接口或者接口方法上使用该注解,由于这只有在使用基于接口的代理时它才会生效。另外, @Transactional 注解应该只被应用到 public 方法上,这是由 Spring AOP 的本质决定的(从上面的Spring AOP 事务加强能够看出,就是针对方法的)。若是你在 protected、private 或者默承认见性的方法上使用 @Transactional 注解,这将被忽略,也不会抛出任何异常。htm

SpringMVC的@RequestMapping注解

 使用反射会发现并无把@RequestMapping继承过来,可是子类能享有它所带来的的效果,可是若是父类为接口则无效,由于接口能够多实现,类是单继承blog

 

 

参考资料继承

  http://www.javashuo.com/article/p-qstdumlo-gk.html接口

  https://stackoverflow.com/questions/4745798/why-java-classes-do-not-inherit-annotations-from-implemented-interfaces事务

 

 

 

部分原文连接:https://zxmsdyz.iteye.com/blog/1974249文档

相关文章
相关标签/搜索