注解根据来源可分为: 系统注解(自带的,取决于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常用注解(更新中)的更多相关文章

  1. JAVA常用注解

    摘自:https://www.cnblogs.com/guobm/p/10611900.html 摘要:java引入注解后,编码节省了很多需要写代码的时间,而且精简了代码,本文主要罗列项目中常用注解. ...

  2. 韩顺平Java(持续更新中)

    原创上课笔记,转载请注明出处 第一章 面向对象编程(中级部分) PDF为主 1.1 IDEA 删除当前行,ctrl+y 复制当前行,ctrl+d 补全代码,alt+/ 添加或者取消注释,ctrl+/ ...

  3. JAVA 常用注解( JDK, Spring, AspectJ )

    JDK自带注解   @Override   表示当前方法覆盖了父类的方法   @Deprecation   表示方法已经过时,方法上有横线,使用时会有警告   @SuppviseWarnings    ...

  4. Mysql 数据库之常用命令[更新中...]

    连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 例如:create database jtest; 显示所有数据库: s ...

  5. Android Studio ---------------常用快捷键(更新中。。。。。。)

    ##常用快捷键: Ctrl+X(或Y) 删除行 Ctrl+D 复制行 Ctrl+Alt+L 格式化代码 Ctrl + Alt + V 提取变量 Shift+F6 重命名 Ctrl+F12显示当前文件的 ...

  6. 【剑指offer】Java实现(持续更新中)

    面试题3 二维数组中的查找 Leetcode--74 Search a 2D Matrix /*Java Write an efficient algorithm that searches for ...

  7. java常用注解校验参数

    validation中内置的constraints 注解 描述 @AssertFalse 所注解的元素必须是Boolean类型,且值为false @AssertTrue 所注解的元素必须是Boolea ...

  8. Java ----------- 正则表达式(更新中。。。。。。)

    RegEx:Regular Expression. 元字符 描述 \ 将下一个字符标记符.或一个向后引用.或一个八进制转义符.例如,“\\n”匹配\n.“\n”匹配换行符.序列“\\”匹配“\”而“\ ...

  9. C#常用代码(更新中)

    文件(夹)的相关操作 新建文件夹 If(!Directory.Exist(路径)) Directory.CreateDirectory(路径); 删除文件夹 Directory.Delete(路径,t ...

随机推荐

  1. 使用PostMan快速生成代码

    Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.关于PostMan的下载和使用网上有很多相关的博客介绍,本文主要介绍PostMan在进行模拟Http请求后可以根据需要的 ...

  2. 阿里巴巴 DevOps 转型后的运维平台建设

    原文:http://www.sohu.com/a/156724220_262549 本文转载自公众号「DevOps 时代」,高效运维社区致力于陪伴您的职业生涯,与您一起愉快的成长. 作者简介: 陈喻( ...

  3. 用VS2010创建三层架构开发模式及三层架构的研究

    三层架构的研究 三层体系结构的概念 用户界面表示层(USL) 业务逻辑层(BLL) 数据访问层(DAL) BLL将USL与DAL隔开了,并且加入了业务规则   各层的作用 1:数据数据访问层:主要是对 ...

  4. 笔记本中G-Sensor(加速计) M-Sensor 陀螺仪等传感器的区别与作用

    1.G-sensor重力传感器 作用 G-sensor中文是加速度传感器的意思(英文全称是Accelerometer-sensor),它能够感知到加速力的变化,加速力就是当物体在加速过程中作用在物体上 ...

  5. GetTickCount()函数的陷阱!

    开发中经经常使用GetTickCount()函数来进行间隔时间的推断.如推断某一段代码运行花了多少时间等,使用比較方便. 可是仅仅针对寻常的一些測试.近期开发一个服务程序时,也在代码中用GetTick ...

  6. 细说Redirect重定向请求(情节分享)

         前些日子在开发公司项目接口的时候,由于需要与第三方平台对接,由于接口之前的层层封装,不断的需要转发,把人差点搞糊涂了.本来以为之前对Redirect的认识足够清楚,可是到实际开发之前我还是没 ...

  7. u3D大场景的优化

    首先介绍下draw call(这个东西越少你的游戏跑的越快): 在游戏中每一个被展示的独立的部分都被放在了一个特别的包中,我们称之为“描绘指令”(draw call),然后这个包传递到3D部分在屏幕上 ...

  8. oracle中提高order by的性能

    1.如果order by columnA,那么在where查询条件中添加条件columnA=value,则oracle内部会过滤order by排序,直接用索引(可以通过execution plan查 ...

  9. 关于ViewData,ViewBag,TempData三者学习记录!

    关于ViewData,ViewBag,TempData三者学习分享! 1.ViewData和TempData是字典类型,赋值方式用字典方式,ViewData["Key"] . 2. ...

  10. MIC中示例程序计算π

    mic中编程十分简单,只需在普通程序中简单加几句就可以,使用 lspci|grep -i -co-processor 命令可以查看机器中是否插入MIC卡以及MIC卡的数目,MIC编程环境的配置这里就不 ...