本文最后更新于:2021年9月29日 凌晨
概览:Slf4j日志
lombok
Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。
- 可以通过注解生成样板代码,即get\set\tostring等方法。
- lombok是一个IDE插件,也是一个项目要依赖的jar包。
- 编译时使用
- Intellij idea开发的话需要安装Lombok plugin,同时设置 Setting -> Compiler -> Annotation Processors -> Enable annotation processing勾选。
依赖:
1 2 3 4 5 6 7 8 9 10 11 12
| <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> <scope>provided</scope> </dependency> </dependencies>
作者:武培轩 链接:https: 来源:知乎
|
1 2 3 4 5 6 7 8 9 10 11
| @NonNull: 可以帮助我们避免空指针。 @Cleanup: 自动帮我们调用close()方法。 @Cleanup InputStream in = new FileInputStream(args[0]); @Getter / @Setter: 自动生成Getter/Setter方法 @NoArgsConstructor: 自动生成无参数构造函数。 @AllArgsConstructor: 自动生成全参数构造函数。 @Data: 自动为所有字段添加@ToString, @EqualsAndHashCode, @Getter方法, 为非final字段添加@Setter,和@RequiredArgsConstructor! @Builder 会自动生成构造者模式,方便对属性 set/get 操作; @Synchronized 会自动生成同步锁; @SneakyThrows 会自动生成 try/catch 捕捉异常; @Slf4j 是日志相关的,会自动为类添加日志支持。日志默认名称就是log。
|
使用Demo
Stu对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package com.example.springbootdem0.entity;
import lombok.*;
@Getter @Setter @AllArgsConstructor @NoArgsConstructor @ToString @Builder public class Stu { private int id; private String name; private int age; private String mark; }
|
TestStu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| package com.example.springbootdem0.Service;
import com.example.springbootdem0.entity.Stu; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service;
@Service @Slf4j public class TestStu {
public int func(){ log.info("func run ..."); Stu stu = Stu.builder() .id(1) .age(18) .name("小明") .mark("备注").build(); log.info("生成一个stu对象:{}",stu.toString()); return 0; } }
|
log相关需要配置文件logback.xml
1 2 3 4 5 6 7 8 9 10 11
| <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender>
<root level="info"> <appender-ref ref="STDOUT"/> </root> </configuration>
|