Lombok组件应用

1. 概述

  • Lombok是一个编译阶段工具,可以在编译类时,为类添加属性、方法等,通过添加注解来消除模板代码,以简化 Java 代码的编写过程,支持自动生成 getter、setter、toString等方法,减少了重复性的开发工作,提高开发效率;

  • Lombok提供了强大的日志功能,来控制项目开发中日志的级别控制;

2. 安装和配置Lombok

  • 第1步:idea中安装lombok插件
  • 第2步:项目pom文件中添加依赖[创建工程时可勾选]

    <!--引入Lombok依赖-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    

3. 消除模板代码

Lombok 提供了许多注解,每个注解用来生成特定的代码块。下面是一些常用的注解:

3.1. @Getter@Setter

用来生成 getter 和 setter 方法。

@Getter
@Setter
public class Student {
    private String name;
    private int age;
}

这将自动生成 getName(), setName(), getAge(), setAge() 方法。

3.2. @ToString

用来生成 toString 方法。

@ToString
public class Student {
    private String name;
    private int age;
}

这将自动生成 toString() 方法。

3.3. @AllArgsConstructor@NoArgsConstructor

用来生成带参数的和无参的构造函数。

@AllArgsConstructor
@NoArgsConstructor
public class Student {
    private String name;
    private int age;
}

这将自动生成一个有参构造函数和一个无参构造函数。

3.4. @Data

是一个组合的注解,它等价于同时使用了 @Getter@Setter@ToString@``NoArgsConstructor@``EqualsAndHashCode注解。

@Data
public class Student {
    private String name;
    private int age;
}

4. 日志功能

4.1. @Slf4j日志注解

@Slf4jlombok 中的日志注解;此注解描述类时会在类中创建一个日志对象,基于日志对象可以输出一些日志。

使用方法

在需要使用日志的类上加上 @Slf4j 注解即可。

  • log.debug("日志信息")
  • log.info``("日志信息")
    使用示例
@Slf4j
public class MyClass{
    public void myMethod(){
        log.debug("myMethod方法被执行");
    }
}

在上述代码中, @Slf4j 注解被加在了 MyClass 类上。这样就可以在 MyClass 中直接使用 log 对象输出日志了。

4.2. 日志级别

设置了某个日志级别,则会显示该日志级别和比该级别严重的日志级别;

日志级别:TRACE < DEBUG < INFO < WARN < ERROR

  • TRACE:追踪级别
    用于跟踪代码执行的详细信息。通常用于调试阶段,用于输出一些详细的调试信息,对性能影响较大;

  • DEBUG:调试级别

    用于输出调试信息,帮助开发人员诊断问题。通常用于开发和测试阶段,例如输出方法的输入参数和返回值;

  • INFO默认的级别):普通信息级别

    用于输出程序的一般运行信息。通常用于生产环境,记录程序运行的关键信息,如系统启动、关键操作完成等;

  • WARN:警告级别

    用于输出警告信息。通常用于发现一些可能的问题或不正常的情况,但不会影响程序的正常运行;

  • ERROR:错误级别

    用于输出错误信息。通常用于记录程序的错误信息、异常信息,表示程序出现了严重的问题,无法正常运行

注意:在 @Slf4j 注解中,应根据不同的应用场景和需求,可以选择适当的日志级别。

在开发和测试阶段,可以将日志级别设置为****DEBUG****,以便获取详细的调试信息。

而在生产环境中,一般将日志级别设置为****INFO****或更高级别。

4.3. 设置日志级别

@Slf4j 注解默认的日志级别为 INFO,即只会输出 INFO级别 以及 比INFO日志级别更高级别的日志信息,如需配置则需要在配置文件 application.properties 配置文件中进行配置;

# 设置日志级别为WARN
logging.level.root=WARN

# 将cn.tedu包及其包中的所有类的日志级别设置为DEBUG级别
logging.level.cn.tedu._02notice=DEBUG
  1. 通知管理日志优化

  • 第1步: 配置文件application.properties中设置日志级别

    logging.level.root=warn
    logging.level.cn.tedu._02notice=debug
    
  • 第2步: Controller类上添加@Slf4j日志注解

    @Slf4j
    @Controller
    public class NoticeController {}
    
  • 第3步: Controller方法中打印日志

    /**
     * 1.新增公告功能
     */
    @ResponseBody
    @RequestMapping("/v1/notice/add")
    public JsonResult addNotice(NoticeAddParam noticeAddParam){
        log.debug("noticeAddParam = " + noticeAddParam);
        NoticePO noticePO = new NoticePO();
        BeanUtils.copyProperties(noticeAddParam, noticePO);
        noticePO.setUserId(1L);
        noticePO.setCreateTime(new Date());
        noticePO.setUpdateTime(new Date());
    
        noticeMapper.insert(noticePO);
    
        return JsonResult.ok();
    }
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容