@GetMapping
Spring4.3中引进了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},来帮助简化常用的HTTP方法的映射,并更好地表达被注解方法的语义。
以@GetMapping为例,Spring官方文档说:
@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。该注解将HTTP Get 映射到 特定的处理方法上。
Difference between @GetMapping & @RequestMapping:
@GetMapping does not support the consumes attribute of @RequestMapping.
@componentscan注解的用法和作用
刚刚开始学习spring boot,在application中忘记加上@componentscan,倒置web请求一直没有都是404,@componentscan的作用如下:
@ComponentScan告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器。
例如,如果你有个类用@Controller注解标识了,那么,如果不加上@ComponentScan,自动扫描该controller,那么该Controller就不会被spring扫描到,更不会装入spring容器中,因此你配置的这个Controller也没有意义。
@ConfigurationProperties和@Value比较
它们两个都能把配置文件的值直接注入到代码,那么它们的区别是什么呢,怎么选择呢,直接拿官方的表格一下就清楚了
Feature | @ConfigurationProperties | @Value |
---|---|---|
Yes | No | |
Yes | No | |
| No | Yes |
@Validated的使用
SpringMVC验证@Validated的使用
第一步:编写国际化消息资源文件
编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制
-
edit.username.null=用户名不能为空
-
edit.password.size=密码最少{min}位,最长{max}位
-
......
可以将edit.username.null与edit.password.size看为参数,在message中传递,具体请看第二步。
第二步:Bean实体类中加注解
首先介绍关于验证注解的类型种类
@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之间 |
@NotEmpty | 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) |
@NotBlank | 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 |
验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式 |
使用 这些注解很简单,只需要在实体类中的变量属性前面加上该注解即可。
public class User {
private String id;
@NotEmpty(message = "{edit.username.null}")
private String username;
@Size(min=6 ,max= 20 ,message = "{edit.password.size}")
private String password;
}
其中{}相当于占位符,将min、max参数传图,同时也将消息文件中定制的错误信息传入,当然也可以直接不使用国际化文件,但是推荐使用,方便统一与修改。