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

......