Lombok库
-
减少样板代码:Lombok 通过注解生成常见的代码(如
getter
、setter
、构造函数等),避免了手动编写这些常见方法,减少代码冗余,保持代码简洁。 -
编译时生成代码:Lombok 并不在运行时生效,而是在编译时处理注解并修改字节码,将需要的方法自动添加到类中。使用 Lombok 时,你不会在源码中看到这些方法,但它们确实存在于编译后的字节码中。
注解:
构造函数生成注解
@AllArgsConstructor
- 功能:为类生成一个全参构造函数,即包含所有字段作为参数的构造函数
-
public PageResult(long total, List records) { this.total = total; this.records = records; }
@NoArgsConstructor
- 功能:为类生成一个无参构造函数,即默认构造函数。
-
@NoArgsConstructor public class PageResult { private long total; private List records; } // 生成的无参构造函数类似于: public PageResult() { // 没有任何参数初始化 }
组合注解
@Data
- 功能:
@Data
是 Lombok 的一个组合注解,它自动生成常见的类方法,包括getter
、setter
、toString()
、equals()
、hashCode()
以及final
字段的必要构造函数。通过使用@Data
,简化了 Java 类的编写,适用于实体类或数据传输对象(DTO),避免手动编写样板代码。
日志生成注解
@Slf4j
注解基于 SLF4J 接口,只负责自动生成日志记录器对象,不能直接决定日志的输出位置。日志的输出位置、格式(如文件或控制台)和日志级别等,取决于你所使用的底层日志实现(如 Logback、Log4j2)。通过配置这些日志框架,你可以控制日志是否输出到文件、控制台或其他目标
<configuration>
<!-- 文件输出配置 -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>logs/app.log</file> <!-- 日志文件路径 -->
<append>true</append> <!-- 是否追加 -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> <!-- 日志格式 -->
</encoder>
</appender>
<!-- 控制台输出配置 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 根日志设置,使用文件和控制台输出 -->
<root level="info">
<appender-ref ref="FILE" /> <!-- 文件输出 -->
<appender-ref ref="CONSOLE" /> <!-- 控制台输出 -->
</root>
</configuration>
@Slf4j
- 功能:
@Slf4j
是 Lombok 提供的注解,自动为类生成一个log
对象,基于 SLF4J(Simple Logging Facade for Java)接口。它可以简化日志记录的代码,避免手动创建Logger
实例
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class MyService {
public void performTask() {
log.info("Task started");
log.debug("Processing details...");
log.warn("Potential issue detected");
log.error("An error occurred");
}
}