注解学习
@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注入方式