😊 @ 作者: 一恍过去



springboot如何getServletContext_Data


目录

  • 前言
  • 1、安装Lombok插件(IDEA 2020.3后不需要)
  • 2、引入POM
  • 3、Lombok注解说明
  • 4、@Data使用说明


前言

Lombok 是一个 Java 库,通过自动生成代码的方式,简化了 Java 类的编写,减少了冗余的样板代码。它通过在编译时自动生成 getter、setter、构造函数、equals/hashCode、toString 等常用方法的实现,使开发人员能够更专注于业务逻辑而不是重复的代码编写。

以下是 Lombok 的一些常用注解及其功能:

  • @Getter / @Setter: 自动生成属性的 getter 和 setter 方法。
  • @ToString: 自动生成 toString 方法,可选择包含指定属性。
  • @EqualsAndHashCode: 自动生成 equals 和 hashCode 方法,可选择包含指定属性。
  • @NoArgsConstructor: 自动生成无参构造函数。
  • @AllArgsConstructor: 自动生成包含所有属性的构造函数。
  • @Data: 包含了 @Getter、@Setter、@ToString、@EqualsAndHashCode 和 @RequiredArgsConstructor 的组合注解。
  • @Builder: 自动生成构造对象的建造者模式代码。
  • @Slf4j: 自动生成一个名为 log 的日志记录器。

在传统的实体类中,通过使用getter/setter/toString,如果是实体类的字段比较多,那么代码可读性较差,甚至出现遗漏getter/setter的情况,目前IDEA 2020.3以及SpringBoot 2.1.x的版本都默认支持了Lombok

1、安装Lombok插件(IDEA 2020.3后不需要)

搜索lombok安装插件

springboot如何getServletContext_实体类_02


setting->Build,Execution,Deployment->Compiler->Annocation Processors中开启 Annocation Processors

springboot如何getServletContext_自动生成_03

2、引入POM

如果是SpringBoot 2.1.x以后的版本,可以直接引入lombok,不需要带上版本号:

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
</dependency>

如果是SpringBoot 2.1.x以前的版本,需要手动加上版本号,比如:

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.18.12</version>
</dependency>

3、Lombok注解说明

Lombok最常用的注解就是@Data作用于实体类上,是@ToString、@EqualsAndHashCode、@Getter、@Setter、@RequiredArgsConstructor的集合;

  • @Getter/@Setter: 作用实体类上,生成所有成员变量的getter、setter方法;
  • @ToString: 作用实体类上,重新toString()方法;
  • @EqualsAndHashCode: 作用实体类上,覆盖默认的equals和hashCode
  • @RequiredArgsConstructor: 生成包含final和@NonNull注解的成员变量的构造器;
  • @NoArgsConstructor: 生成无参构造器;
  • @AllArgsConstructor: 生成全参构造器;

4、@Data使用说明

实体类:

@Data
public class User {
    public String username;
    public String nickname;
}

Test类:

public class Test {
    public static void main(String[] args) {
        // 调用set、get赋值
        User user = new User();
        user.setUsername("admin");
        user.setNickname("测试用户");
        System.out.println("用户名为:" + user.getUsername());

        // 打印实体的json,@Data重写了默认的ToString方法
        System.out.println("实体内容:" + user);
    }
}

效果:

springboot如何getServletContext_Data_04