Spring注解

1 @deprecated

表示此方法不再继续维护,可以继续使用,但不建议

2 @Configuration

配置文件的注解,代表从配置文件拿配置

3 @value

从配置文件拿去具体配置

4 @Controller, @Service, @Repository,@Componen

都是实现bean 的注入

  • 允许通过类路径扫描自动检测实现类
  • 它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法

 

只是作用的范围不一样

@controller 作用controller控制层层

@service 作用service业务层

@repository 作用于 数据层

@componen 业务模糊就用这个

5 @PostConstruct @PreDestroy

被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的init()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。

被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreDestroy修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。

类似 引用的初始化操作

6 @Primary

自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者

7 @Lazy(true)

懒加载

多用在依赖的互相引用,造成依赖循环的时候,就要用到这个注解

 

8 @Autowired @Resource @Inject 注入bean

Autowired默认先按byType,如果发现找到多个bean,则,又按照byName方式比对,如果还有多个,则报出异常。

@Resource 默认按 byName自动注入,如果找不到再按byType找bean,如果还是找不到则抛异常,无论按byName还是byType如果找到多个,则抛异常。

@Inject 等价于默认的@Autowired,只是没有required属性

9 @Async @EnableAsync 异步执行

@EnableAsync 作用在类上

异步调用就是不用等待结果的返回就执行后面的逻辑;

同步调用则需要等待结果再执行后面的逻辑。

一般多用在线程池中

 

10 @Singleton

单例注解

 

11 @Valid,@Valided

@Validated:可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)上 额外提供了一个分组功能

@Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上

@Valid 验证注解是否符合要求 一般入参配合@RequestBody,实体在加上注解

限制 说明

限制

说明

@Null

限制只能为null

@NotNull

限制必须不为null

@AssertFalse

限制必须为false

@AssertTrue

限制必须为true

@DecimalMax(value)

限制必须为一个不大于指定值的数字

@DecimalMin(value)

限制必须为一个不小于指定值的数字

@Digits(integer,fraction)

限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction

@Future

限制必须是一个将来的日期

@Max(value)

限制必须为一个不大于指定值的数字

@Min(value)

限制必须为一个不小于指定值的数字

@Past

限制必须是一个过去的日期

@Pattern(value)

限制必须符合指定的正则表达式

@Size(max,min)

限制字符长度必须在min到max之间

@ScriptAssert(lang=,script=, alias=)

 

@Past

验证注解的元素值(日期类型)比当前时间早

@URL(protocol=,host=,port=,regexp=, flags=)

 

@CreditCardNumber

信用卡验证

@NotEmpty

验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)

@NotBlank

验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格

@Email

验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

@Range(min=, max=)

检查数字是否介于min和max之间.

 

 

12 @RequestBody @Responsebody @ResponseStatus

@RequestBody入参为json 格式,且请求为post请求

@Responsebody 出参为json格式

@ResponseStatus 一种是加载自定义异常类上,一种是加在目标方法中 当修饰一个类的时候,通常修饰的是一个异常类,一个自定义异常类,在自定义异常类上面加上@ResponseStatus注释表示系统运行期间,当抛出自定义异常的时候,使用@ResponseStatus注解中声明的属性和reason属性将异常信息返回给客户端,提高可读性。

13 @RestController

@RestController = @Controller + @ResponseBody。

全局定义

 

14 @RequestParam @Param

解决参数不一致的问题,放在参数前面

@RequestParam 一般用在Controller

@Param 用在Dao层 多个入参,不指定有时候会报映射找不到

 

 

15 PathVariable

url路径值与入参映射,将url的参数传递到入参上面

16 @RequestHeader @CookieValue

处理request header部分的注解

 

17 @GetMapping @PostMapping @RequestMapping

@RequestMapping 包含了get 与 post 参数不填写,一般用在controller

 

默认参数

1、 value, method:

value:指定请求的实际地址,指定的地址可以是URI Template 模式;

method:指定请求的method类型, GET、POST、PUT、DELETE等;

 

18 @Retention @Target @Document @Inherited

 

19 @Inject @Autowired

自动注入bean,等价于默认的@Autowired,只是没有required属性

 

20  

如果domain中没有重写toString, 且使用了@Data注解, 调用toString时只会打印子类本身的属性值, 如果想要打印父类的属性:

方式一: 重写tostring

方式二: 子类加上@Data和@ToString(callSuper = true)两个注解, 父类也使用注解@Data

原文地址:https://www.cnblogs.com/zq1003/p/13964738.html