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 不能为空,否则抛出空指针异常