Spring学习-框架注解
2023-03-14 10:35:35
### Spring注解
![Spring注解](https://img-blog.csdnimg.cn/img_convert/fb04721bbced0854ca3282da96767d0e.png)
* @RestController
用于表示controller层的组件,与@Controller注解的不同在于,相当于在每个请求处理方法上都添加了@ResponseBody注解,这些方法都将返回JSON格式数据。
* @GetMapping
用于表示GET请求方法,等价于@RequestMapping(method = RequestMethod.GET)。
* @PostMapping
用于表示POST请求方法
* @RequestBody
表示方法的请求参数为JSON格式,从Body中传入,将自动绑定到方法参数对象中。
* @ResponseBody
表示方法将返回JSON格式的数据,会自动将返回的对象转化为JSON数据。
* @PathVariable
用于接收请求路径中的参数,常用于REST风格的API。
* 依赖注入注解
1. @Autowired
会根据对象的类型自动注入依赖对象,默认要求注入对象实例必须存在,可以配置required=false来注入不一定存在的对象。
2. @Resource
默认会根据对象的名称自动注入依赖对象,如果想要根据类型进行注入,可以设置属性为type = UmsAdminService.class。
### mybatis注解
Mybatis中的注解基本上都在org.apache.ibatis.annotations目录下
![mybatis注解](https://img-blog.csdnimg.cn/img_convert/28b610c657a4baa47626c9dcc7bcba4c.png)
* @MapperScan
注解主要是扫描某个包目录下的Mapper,将Mapper接口类交给Spring进行管理
用法: @MapperScan("com.example.book.mapper")
* @Select
* @Insert
* @Update
* @Delete
* @Param
* @Option
### lombok注解
![lombok注解](https://img-blog.csdnimg.cn/img_convert/ae79bb57e9a517880b739c446e3a8f29.png)
* @Getter/@Setter
1. 类上、类中字段上,让lombok自动生成默认的getter/setter。
2. 使用AccessLevel来定义方法的访问权限
>1、在类上的@Getter、@Setter中添加value=AccessLevel.PRIVATE,那么则会应用到类中的所有属性上;
>2、在类中属性上的@Getter、@Setter中添加value=AccessLevel.PRIVATE,那么会覆盖在类上添加的权限控制。
```java
@Getter
@Setter(value = AccessLevel.PRIVATE)
public class Consumer2 {
@Setter(value = AccessLevel.PUBLIC) // 测试在属性上定义会覆盖在类上的定义
private String name;
@Getter(value = AccessLevel.PRIVATE)
private int age;
private Boolean flag;
private boolean updateFlag;
}
```
* @Data注解于类
将类提供的所有属性都添加get、set方法,并添加equals、canEquals、hashCode、toString方法
* @Value注解用于修饰类
相当于是@Data的不可变形式,因为字段都被修饰为private和final,默认的情况下不会生成settter。还有一点更狠的,默认类本身也是final的,不能被继承。
* @NoArgsConstructor注解于类
生成无参构造函数
* @AllArgsConstructor作用于类
生成全参构造函数
* @RequiredArgsConstructor
也是在类上使用,但是这个注解可以生成带参的构造方法。只能是类中所有带有 @NonNull注解的和以final修饰的未经初始化的字段
* @Builder作用于类
将类变为建造者模式
* @ToString
添加一个toString方法
* @NotNull
不能为空,否则抛出空指针异常