Java教程

Java注解的继承

本文主要是介绍Java注解的继承,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

注解继承的说明

1、首先要想Annotation能被继承,需要在注解定义的时候加上@Inherited,并且如果要被反射应用的话,就需要还有个事@Retention(RetentionPolicy.RUNTIME)标识

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

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

4、Annotation的继承不能应用在接口上

特殊注解说明

Spring事务注解@Transactional

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

SpringMVC的@RequestMapping注解

使用反射会发现并没有把@RequestMapping继承过来,但是子类能享有它所带来的的效果,但是如果父类为接口则无效,因为接口可以多实现,类是单继承。

参考

https://www.cnblogs.com/xhy-shine/p/11138183.html
https://www.cnblogs.com/chenkeyu/p/7895751.html

这篇关于Java注解的继承的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!