java常用注解(更新中)
注解根据来源可分为: 系统注解(自带的,取决于JDK版本)、自定义注解及第三方注解
系统注解根据用途又可分为: java内置注解和元注解
根据运行机制(保留到什么时候)可分为: 源码注解、编译注解和运行注解
java内置注解
@Override
覆盖父类方法
@Deprecated(不赞成)
用于方法,表明方法已过期,不建议使用
@Suppvisewarning
忽略警告,例如当我们要使用已过时方法,有的编译器会出现警告,
@Suppvisewarning("deprecation")表示忽略此警告
-------------------------------------------------------------
元注解
用来注解其他注解
@Target
声明注解用在什么地方
ElementType.CONSTRUCTOR 用于构造器
ElementType.FIELD 用于成员属性
ElementType.LOCAL_VARIABLE 局部变量
ElementType.METHOD 方法
ElementType.PACKAGE 包
ElementType.PARAMETER 用于参数
ElementType.TYPE 类、接口或enum(enum可视为特殊的类)
ElementType.ANNOTATION_TYPE 注解
@Rentention
注解信息保留到什么时候
RententionPolicy.SOURCE 只在源代码中保留,编译阶段抛弃
RententionPolicy.CLASS 只保留到编译阶段(CLASS文件),VM中运行时抛弃
RententionPolicy.RUNTIME 运行时也保留,可通过反射机制获取注解信息
@Document
注解将被包含至javadoc中
备注: javadoc是Sun公司提供的一种技术,能从源代码中抽取类、方法、成员、注释等生成一个和源代码配套的API帮助文档
指令: javadoc xxx.java
@Inherited
子类可继承父类的此种注解(如果父类有的话)
------------------------------------------------------------------
常用第三方注解
@Return
一般用于方法上,说明有返回值
@Controller
声明为控制器,可返回jsp、html页面的名称并跳转到相应页面
备注:springMVC中,控制器就是一个其方法中添加了@RequestMapping来处理请求的类
@RequestBody
@ResponseBody
与@Controller结合使用,表明返回json数据
@RequestMapping(value= 'xx', method=XX)
表明方法是处理那种类型、什么地址的请求,返回值默认解析为跳转路径
@GetMapping()
组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写
@PostMapping()
组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写
@PathVariable
Spring3.0 新增带占位符的 URL,例如@RequestMapping("/a/{id}"),通过@PathVariable可以将 URL中占位符参数绑定到控制器处理方法的入参中
@RestController
@Controller与@ResponseBody的结合
@ComponentScan
会扫描@Controller、@Service、@Repository、@Component,默认扫描自己所在的包
basePackage 制定扫描的包(根目录开始)
includeFilters 包含的过滤器
excludeFilters 排除的过滤器
@Filter
type value
@Controller
声明为一个控制器 语义性,功能同@Component
@RestController
相当于ResponseBody+Controller 表明此控制器返回json
@Test
junit 表明为测试方法
@Configuration
表明是一个配置类
@ComponentScan
组件扫描,主要是扫描我们自定义的组件(归spring管理的)
@EnableAutoConfiguration
组件扫描,但主要是扫描jar包下
启用 Spring 应用程序上下文的自动配置
@SpringBootApplication
相当于@Configuration+ @EnableAutoConfiguration+ @ComponentScan
@Autowired
自动装配bean,默认按照类型
@Resource
自动装配bean,默认按照名称
@GeneratedValue(strategy=GenerationType.xxx)
用来设置主键的生成策略
AUTO 由程序控制
IDENTITY 由数据库生成,采用数据库自增长
。。。
@Id
声明属性为主键
@Column(name= "xxx")
声明属性在数据库中的名称
@ConfigurationProperties("xxx.xxx.xxx")
注入application.properties中xxx.xxx.xxx开头的属性
@Primary
确定该实现类为最优先
@Qualifier
为同一接口的实现类添加标志
@Mapper
声明此接口为一个mapper,使用此注解无需再写xml映射文件
componentModel 声明此接口的实现类的类型
@MapperScan
扫描指定的包,包内所有的类都成为mapper,这样无需为每一个类都添加@Mapper
@MapperScan(basePackages= {"xxx.xxx"}, sqlSessionFsactoryRef= "", sqlSessionTemplateRef= "")
@RequestBody
作用于形参上,将前台发来的固定格式的数据(xml或json)封装成JavaBean对象
如何封装: 使用系统默认配置的 HttpMessageConverter对数据进行解析,然后封装到形参上
body-> JavaBean
@ResponseBody
作用于方法,表明此方法的返回值写入Http response body中
如何写入: 改注解作用的方法返回一个对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区
JavaBean-> body
mybatis注解:
@Select
......
java常用注解(更新中)的更多相关文章
- JAVA常用注解
摘自:https://www.cnblogs.com/guobm/p/10611900.html 摘要:java引入注解后,编码节省了很多需要写代码的时间,而且精简了代码,本文主要罗列项目中常用注解. ...
- 韩顺平Java(持续更新中)
原创上课笔记,转载请注明出处 第一章 面向对象编程(中级部分) PDF为主 1.1 IDEA 删除当前行,ctrl+y 复制当前行,ctrl+d 补全代码,alt+/ 添加或者取消注释,ctrl+/ ...
- JAVA 常用注解( JDK, Spring, AspectJ )
JDK自带注解 @Override 表示当前方法覆盖了父类的方法 @Deprecation 表示方法已经过时,方法上有横线,使用时会有警告 @SuppviseWarnings ...
- Mysql 数据库之常用命令[更新中...]
连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 例如:create database jtest; 显示所有数据库: s ...
- Android Studio ---------------常用快捷键(更新中。。。。。。)
##常用快捷键: Ctrl+X(或Y) 删除行 Ctrl+D 复制行 Ctrl+Alt+L 格式化代码 Ctrl + Alt + V 提取变量 Shift+F6 重命名 Ctrl+F12显示当前文件的 ...
- 【剑指offer】Java实现(持续更新中)
面试题3 二维数组中的查找 Leetcode--74 Search a 2D Matrix /*Java Write an efficient algorithm that searches for ...
- java常用注解校验参数
validation中内置的constraints 注解 描述 @AssertFalse 所注解的元素必须是Boolean类型,且值为false @AssertTrue 所注解的元素必须是Boolea ...
- Java ----------- 正则表达式(更新中。。。。。。)
RegEx:Regular Expression. 元字符 描述 \ 将下一个字符标记符.或一个向后引用.或一个八进制转义符.例如,“\\n”匹配\n.“\n”匹配换行符.序列“\\”匹配“\”而“\ ...
- C#常用代码(更新中)
文件(夹)的相关操作 新建文件夹 If(!Directory.Exist(路径)) Directory.CreateDirectory(路径); 删除文件夹 Directory.Delete(路径,t ...
随机推荐
- declare @t table
DECLARE @t TABLE(date char(21))INSERT @t SELECT '1900-1-1 00:00:00.000'INSERT @t SELECT '1900-1-1 00 ...
- Squid 启动/停止/重载配置文件 命令
当你的 squid.conf 配置文档按照你的想法修改完以后,启动 squid 之旅就开始了. Squid安装设试命令: 1,初始化你在 squid.conf 里配置的 cache 目录 #/usr/ ...
- Linux 下安装PHPunit
PHP 档案包 (PHAR) 要获取 PHPUnit,最简单的方法是下载 PHPUnit 的 PHP 档案包 (PHAR),它将 PHPUnit 所需要的所有必要组件(以及某些可选组件)捆绑在单个文 ...
- iOS swift objc_setAssociatedObject和objc_getAssociatedObject使用
oc中的AssociationsManager在swift中也是可以实现的 使用方法请看下面一个例子 import UIKit extension UIButton { func fk_addActi ...
- sudo保持环境变量
编译Linux内核的最后是make modules_install install,这两个一般都需要root权限,即sudo,而一般我交叉编译内核时都是在.bashrc中export ARCH=arm ...
- 第4章 URL管理器和实现方法
URL管理器:管理待抓取URL集合和已抓取URL集合 -- 防止重复抓取.防止循环抓取 URL需要支持哪些功能: 添加新URL到待爬取集合中.判断待添加URL是否在容器中,判断是否还有待爬取URL,获 ...
- Composer的Autoload源码实现2——注册与运行
前言 上一篇 文章我们讲到了 Composer 自动加载功能的启动与初始化,经过启动与初始化,自动加载核心类对象已经获得了顶级命名空间与相应目录的映射,换句话说,如果有命名空间 'App\Consol ...
- 在VS中自动生成NuGet包以及搭建自己的或单位内部的NuGet服务器
关于NuGet的介绍已经很多,可以参考下面的: NuGet学习笔记(1)--初识NuGet及快速安装使用 http://kb.cnblogs.com/page/143190/ NuGet学习笔记(2) ...
- CAFFE学习笔记(二)Caffe_Example之测试mnist
这一次的博客将接着上一次的内容,简单讲解一下如何使用训练后的网络lenet_iter_5000.caffemodel与lenet_iter_10000.caffemodel. 1.在网络训练完毕后,将 ...
- Netty 高并发 (长文)
目录 Netty+Zookeeper 亿级 高并发实战 (长文) 写在前面 1. 高并发IM架构与部分实现 1.1. 高并发的学习和应用价值 1.1.1. 高并发IM实战的价值 1.1.2. 高并发I ...