05-Spring Boot工程中简化开发的方式Lombok和dev-tools

简化开发的方式Lombok和dev-tools

Lombok常用注解

Lombok用标签方式代替构造器、getter/setter、toString()等重复代码, 在程序编译的时候自动生成这些代码

注解名 功能
@NoArgsConstructor 生成无参构造方法
@AllArgsConstructor 生产含所有属性的有参构造方法,如果不希望含所有属性则需要手动生成
@Getter 生成属性的getter方法
@Setter 生成属性的setter方法
@ToString 生成toString方法
@EqualsAndHashCode 生成equals和HashCode方法 callSuper = true表示用自己的属性和从父类继承的属性来生成hashcode callSuper = false(默认)表示只用自己的属性来生成hashcode
@Data 除了不能生成有参构造方法,以上注解能生成的@Data都能生成
@Slf4j 注入log日志类,简化日志开发, log.info()在控制台上输出信息,方便调试
@Accessors 在生成 getter 和 setter 方法时做一些相关的设置 作用于类上时修饰类中所有字段,当作用于具体字段时只对该字段有效 chain属性值默认为false,当该值为true时对应字段的setter方法调用后会返回当前对象即可以实现链式调用

使用步骤

第一步引入依赖org.projectlombok: Spring Boot父工程中已经指定了Lombok的版本号

xml 复制代码
 <dependency>
     <groupId>org.projectlombok</groupId>
     <artifactId>lombok</artifactId>
</dependency>

第二步: 搜索并安装Lombok插件

第三步: 测试Lombok提供的相关注解的功能

java 复制代码
@Data
public class User {
    private String name;
    private Integer age;
    private Pet pet;
    public User(String name,Integer age){
        this.name = name;
        this.age = age;
    }
}

@Slf4j
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String handle01(@RequestParam("name") String name){
        log.info("请求进来了....");
        return "Hello, Spring Boot 2!"+"你好:"+name;
    }
}

dev-tools依赖

热更新: 在工程中添加spring-boot-devtools依赖,这样当项目或者页面源代码修改以后按住Ctrl+F9可以快速编译项目并重新加载

xml 复制代码
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>
相关推荐
明月_清风3 小时前
加密解密系统完全指南:原理剖析与 Go 实践
后端
方也_arkling3 小时前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮3 小时前
Spring Bean作用域与生命周期全解析
java·spring
Chengbei113 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1123 小时前
web-第一次课后作业
java·开发语言·idea
秋93 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本3 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
DIY源码阁4 小时前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse
冬奇Lab4 小时前
每日一个开源项目(第105篇):Twenty - 跳出 Salesforce 的圈套,定义现代开源 CRM
前端·后端·开源
basketball6165 小时前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++