本文旨在记录开发中遇到的SpringBoot高频注解,并针对其具体应用记录。
一、LOMBOK相关注解
- @Slf4j
目的在于使用Log的日志功能,可以在JAVA中自动生成日志记录器!使用时在类上添加@Slf4j注解后即可以在类中调用log方法
如 可以 调用 log.info 或者 log.debug 或 log.error 方法等 - @Data
目的在于提高代码的整洁度,降低代码的冗余。可以自动生成JavaBean的getters、setters、toString、hashCode和equals方法。 - @NoArgsConstructor和@AllArgsConstructor
目的在于提供无参构造方法及全参构造方法
在使用时,我们可以直接创建对象的实例,而不需要手动编写无参构造方法以及全参构造方法。 - @Bulider
目的在于生成bulider模式的构造函数
在开发中遇到的POJO类经常包含很多成员变量,并且需要编写相应的构造方法。所以我们可以编写一个Bulider构造器,Builder模式是一种创建对象的设计模式,它可以通过链式调用的方式设置对象的属性,并最终创建一个不可变的对象。为了简化这个过程,Lombok框架提供了一个@Builder注解,可以自动生成一个Builder模式的构造器。 - @Getter@Setter@EqualsAndHashCode@ToString
目的在于提供Get方法、Set方法、Equals方法、toString方法
其单独使用可提供对应的方法。 特别的是 @Data注解可以包括提供全部方法
二、基本注解
- @SpringBootApplication
作用:这是一个组合注解,包括了@Configuration、@EnableAutoConfiguration
和@ComponentScan三个注解。用于标识SpringBoot应用程序的入口类。
@EnableAutoConfiguration 注解 代表了SpringBoot的自动装配实现。内部有一个@Import注解,所有配置信息会以List的形式返回到IOC容器,再通过与以导入坐标进行比对,最后通过@Conditional注解判断是否需要自动装配 - @RestController
作用:与@Controller类似表示为一个Controller层的应用@Controller和@RestController的区别:
@Controller:在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面若返回json等内容到页面,则需要加@ResponseBody注解@RestController:相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面