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/flying607/p/8295139.html
部分原文链接:https://zxmsdyz.iteye.com/blog/1974249
Java注解的继承的更多相关文章
- Java注解合并,注解继承
莆田SEO:spring中有时候一个类上面标记很多注解. 实际上Java注解可以进行继承(也就是把多个注解合并成1个) 比如说SpringMVC的注解 @RestController @Request ...
- 了解java注解
类似于下面这样的就是注解 注解可以在类上,成员变量上,方法上等 假如有2个注解是这样的:(其中的Author和Date) 那么这2个注解的定义就是这样的: Author注解: Date注解: 可以看到 ...
- 19.Java 注解
19.Java注解 1.Java内置注解----注解代码 @Deprecated //不推荐使用的过时方法 @Deprecated ...
- Java注解入门
注解的分类 按运行机制分: 源码注解:只在源码中存在,编译后不存在 编译时注解:源码和编译后的class文件都存在(如@Override,@Deprecated,@SuppressWarnin ...
- java注解(Annotation)解析
注解(Annotation)在java中应用非常广泛.它既能帮助我们在编码中减少错误,(比如最常见的Override注解),还可以帮助我们减少各种xml文件的配置,比如定义AOP切面用@AspectJ ...
- Java注解的使用
概念:java提供了一种原程序中的元素关联任何信息和任何元数据的途径和方法. Java中的常见注解 JDK自带注解: @Override//覆盖父类的方法 @Deprecated//表示方法过时了 @ ...
- JAVA 注解的几大作用及使用方法详解
JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释 ...
- JAVA 注解的几大作用及使用方法详解【转】
java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解 ...
- 框架基础——全面解析Java注解
为什么学习注解? 学习注解有什么好处? 学完能做什么? 答:1. 能够读懂别人写的代码,特别是框架相关的代码: 2. 让编程更加简洁,代码更加清晰: 3. 让别人高看一眼. spring.mybati ...
随机推荐
- Hibernate查询总的记录数
1. 原生sql String hql="select count(*) from product" ;//此处的product是数据库中的表名 Query query=sessi ...
- 关于ansbile
YAML语法规则 规则一:缩进(一个缩进两空格,注意一定不用tab) 规则二:冒号(每个冒号后一定要有空格) 规则三:短横线 - (短横线后面要空格) 编写案例 ansible-playbook -- ...
- Python深入学习之特殊方法与多范式
Python深入学习之特殊方法与多范式 Python一切皆对象,但同时,Python还是一个多范式语言(multi-paradigm),你不仅可以使用面向对象的方式来编写程序,还可以用面向过程的方式来 ...
- UISearchBar去掉SearchBar上面两条分割线
设置之前: 设置之后: 代码如下: // // ViewController.m // UISearchBarDemo // // Created by 思 彭 on 17/3/24. // Copy ...
- mysql 索引失效的几种情况+
- 【转载】softmax的性质及其实现
原文地址:https://segmentfault.com/a/1190000010039529?utm_source=tag-newest softmax函数将任意n维的实值向量转换为取值范围在(0 ...
- sqlalchemy映射数据库
from sqlalchemy import create_engine,Column,Integer,String from sqlalchemy.ext.declarative import de ...
- Linux基础命令---间歇执行命令---watch
[watch] watch指令可以间歇性的执行程序,将输出结果以全屏的方式显示,默认是2s执行一次. watch指令下发后,将会一直被执行,直到被中断. [语法] watch \ [-d h v t] ...
- Eclipse中格式化代码
Eclipse中格式化代码快捷键Ctrl+Shift+F失效的解决办法 格式化代码的时候,右键 --> Source --> Format 能够起效,但 Ctrl+Shift+F不好使. ...
- Oracle网络相关概念与常用配置文件
监听器(Listener) 监听器是Oracle基于服务端的一种网络服务,主要用于监听客户端向数据库服务器提出的链接请求. 本地服务名(Tnsname) Oracle客户端与服务器端的链接是通过客户端 ...