SpringBoot常用注解及作用?

1. 作用:

SpringBoot不再使用传统的XML文件复杂的配置,将Spring框架一些默认配置,IOC和DI配置,SpringMVC的相关配置都由启动类实现自动配置,降低了项目搭建的复杂度,开箱即用,约定大于配置。
后续还需要增加的一些额外配置一般在application.properties/application.yml中
或者写配置类并使用@Configuration修饰以及在类内部使用@Bean注解配合使用。

2.常用注解:
Spring IOC注解:

这组注解的作用是写在控制层/业务层/持久层类上,让Spring框架帮助创建对象并放入IOC容器中
@Component 通用IOC注解
@Controller 控制层IOC注解
@Service 业务层IOC注解
@Repository 持久层IOC注解(持久层目前只提供接口,所以不需要写该注解)

Spring DI注解:

这组注解的作用是在从IOC容器中取出来对应对象依赖注入到需要用的地方
@Autowired Spring提供的依赖注入注解(类型 bytype)
@Resource Servlet提供的依赖注入注解(名称byname)

SpringMVC注解:

这些注解是写在控制层类,方法上以及方法的参数前面,负责接收处理请求以及数据响应给客户端。
@RequestMapping url和控制器请求映射注解,能够处理所有请求类型
也可以添加method属性处理特定请求,比如:
@RequestMapping(value="/user/",method = RequestMethod.GET)
@GetMapping 处理get请求映射注解,查询操作
@PostMapping 处理post请求映射注解,插入操作
@PutMapping 处理put请求映射注解,整体更新操作
@PatchMapping 处理Patch请求映射注解,局部更新操作
@DeleteMapping 处理delete请求映射注解,删除操作
@ResponseBody 请求业务处理后数据响应注解,一般和Ajax搭配使用
备注:如果控制层使用的是RestController注解,该注解包含了@Controller和@ResponseBody两个注解,则无需再次书写

SpringMVC请求参数处理注解:

这些注解是写在控制层具体请求方法的参数位置,用于获取请求参数
@RequestParam 获取get请求 请求行中的参数
@RequestBody 获取post请求 请求实体中的参数
@PathVariable 获取RestFull风格请求参数,针对get请求
业务层事务控制注解:
可以在业务层对应方法上或者类上面添加该注解进行数据库事务控制,控制隔离级别等
@Transactional 事务控制注解

MyBatis持久层注解

该注解写在持久层接口或者SpringBoot启动类上,让Spring框架通过代理方式创建持久层接口实现类对象交给Spring管理,并且将持久层接口和Mapper.xml文件进行关系映射。
@Mapper 持久层mapper映射注解,写在持久层接口
@MapperScan 自动持久层mapper映射注解,写在启动类上指定包名

MyBatis持久层参数映射注解:

该注解指定持久层方法中的参数和Mapper.xml文件SQL语句中过滤条件字段名字的对应关系。
@Param 持久层参数映射注解

AOP注解:

该注解的作用是实现功能扩展,面向切面编程
@Aspect 标注切面类注解
以下为AOP通知注解
@Before——在方法调用之前调用通知
@After——在方法完成之后调用通知,无论方法执行成功与否
@After-returning——在方法执行成功之后调用通知
@After-throwing——在方法抛出异常后进行通知(没有被捕获时)
@Around——在被通知的方法调用之前和调用之后执行,功能最强大的

Lombok注解:

导入lombok.jar包后在写实体类的时候可以不用写get、set等方法,能够自动生成,依赖于该工具类
@Data 自动生成get/set/构造方法/toString/equals/hashcode等
@Getter 自动生成get
@Setter 自动生成set
@Accessors(chain = true) 重写set方法,返回this对象
@AllArgsConstructor 生成有参构造方法
@NoArgsConstructor 生成无参构造方法

在mybatis-plus中需要加上以下注解:

@TableName(“表名”) 定义把对象与表绑定; 必写
@TableId(type = IdType.AUTO) 定义主键自增
@TableField(value = “name”,exist = true) 确保数据库中必须存在name属性;
mybatis-plus依赖:

com.baomidou
mybatis-plus-boot-starter
3.4.2

时间格式化转换注解:

用于前后端时间格式不一致时候的格式化,需要引入相关依赖,均写在实体类成员变量上
@JsonFormat 后端向前端响应数据时对时间格式进行格式化处理,比如:
@JsonFormat(pattern=“yyyy-MM-dd hh:mm:ss”,timezone = “GMT+8”)
private Date testTime;
@DateTimeFormat 后端接收前端时间格式数据时对格式进行格式化处理
@DateTimeFormat(pattern=“yyyy-MM-dd”)
private Date testTime;

配置类注解:

定义配置类,可以替换xml文件,如果被注解的类内部包含有一个或者多个被@Bean注解的方法,该方法返回的对象可以交给Spring进行管理保存在IOC容器中。
@Configuration 修饰配置类
@Bean 修改方法,方法返回的对象交给Spring管理

全局异常处理注解:

Spring框架捕获发生的异常信息,封装后返回给客户端
@ControllerAdvice 标注统一处理异常类
@ExceptionHandler 用在方法上面表示遇到这个异常就执行以下方法