注解学习


@RestController注解:相当于@ResponseBody+@Controller的合体

返回json数据不需要在方法前加@ResponseBody注解,但是不能返回jsp,html页面,视图解析器无法解析jsp,html页面

@Controller

在对应方法上,视图解析器可以解析return的jsp,html页面,并跳转到相应页面
如果返回json等内容到页面,还需要加@ResponseBody注解

@ControllerAdvice

在Spring 3.2中,新增了@ControllerAdvice、@RestControllerAdvice 注解,
可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping、@PostMapping, @GetMapping注解中,
可对controller中被 @RequestMapping注解的方法加一些逻辑处理
具体用法可参照:https://v.saic-gm.com/Citrix/SGMStoreWeb/clients/HTML5Client/src/SessionWindow.html?launchid=1637577137959

序列 注解 说明
1 @RequestBody 前端传的json形式
2 @Valid 验证注解,可以验证对象中的每个字段。当不符合要求时就会在方法中返回message 的错误提示信息
3 @RequestParam 前端传入的参数可多个
4 @Component 定义bean,被用在要被自动扫描和装配的类上
5 @Bean 定义bean。@Bean是一个方法级别上的注解,添加的bean的id为方法名
使用场景:在配置类中使用,即类上需要加上@Configuration注解的类
@Component倾向于组件扫描和自动装配。
但有时自动设置是做不到的。
假如你要引入第三方库,可是如果你没有源代码,也就无法在其上添加@Component,自动设置也就无从下手。
但@Bean会返回一个被spring认可的Bean。@Bean所注释的方法内部可以对这个第三方库的实例进行设置。
6 @Repository(“名称”) @Component的dao层衍生注解
7 @Service(“名称”) @Component的service层衍生注解
8 @Controller(“名称”) @Component的controller层衍生注解
9 @Autowired 自动根据类型注入bean
10 @Resource(“名称”) 自动根据名称注入bean
11 @JsonFormat
@DateTimeFormat
前端 传给 后端。
当前端传来的是键值对,用@DateTimeFormat 规定接收的时间格式。
当前端传来json串,后台用@ReuqestBody接收,用@JsonFormat 规定接收的时间格式。
后端 传给 前端。
后端返回给前端的时间值,只能用@JsonFormat 规定返回格式,@DateTimeFormat 无法决定返回值的格式。
12 @NotBlank 验证注解的字符串元素值不为空(不为null、去除首位空格后长度不为0)
13 @NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)

bean注入方式