0

我想使用@Slf4j 注释,所以我在我的 pom.xml 文件中导入了这个依赖项

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.29</version>
        </dependency>

但我有错误无法解析符号Slf4j

@Service
@Slf4j
@Transactional(readOnly = true)
public class PasswordResetTokenService {
..
}
4

2 回答 2

1

我相信@Slf4j 注释实际上不是来自 Slf4j,而是来自 Lombok。请查看此链接,该链接似乎提供了一个很好的模板,可以从https://howtodoinjava.com/spring-boot2/logging/logging-with-lombok/开始

如果您查看 Application.java 的摘录。注释的导入来自 lombok

导入 lombok.extern.slf4j.Slf4j;

于 2019-11-16T11:44:30.043 回答
1

注解 @Slf4j 是 Lombok 注解,不存在于 slf4j 依赖项中。

如果您想使用此注解而不是声明记录器字段,则需要向 Lombok 添加额外的依赖项:

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
    <scope>provided</scope>
</dependency>

在 Spring Boot 的情况下,父 POM 可能已经指定了版本。那么你就不需要再声明具体的版本了。

看:

https://projectlombok.org/features/log

https://projectlombok.org/api/lombok/extern/slf4j/Slf4j.html

于 2019-11-16T11:45:06.433 回答