IntelliJ IDEA使用lombok的@Slf4j后无法使用log问题解决

问题

lombok一直用起来很爽,特别是使用lombok+mybatis-plus的脚手架后,开发效率非常高,今天在开发过程中突然发现使用了@Slf4j注解后在类中无法通过log调用日志打印方法。

现象如图

使用@Slf4j
IntelliJ IDEA使用lombok的@Slf4j后无法使用log问题解决_第1张图片
调用log方法时提示
IntelliJ IDEA使用lombok的@Slf4j后无法使用log问题解决_第2张图片
此处无法调用log方法

问题分析

  • 因为之前导入的包倒错,使用了groovy.util.logging.Slf4j;这个包,修改过来之后,重新进行了maven的clean。问题仍然存在,排除包错误的问题
  • 因为其他类中都可以调起方法,只有这个刚写了类出现这种问题。所以确定为代码问题,而非配置及插件问题

问题解决

仔细查看代码差异后发现问题代码在于

@Slf4j
@Service
public class WdtTradeOrderSyncServiceImpl implements WdtTradeOrderSyncService

可能点出问题在这里,大家基本已经明白了,这是一个注解的使用顺序带来的坑。
修改后的代码块为

@Service
@Slf4j
public class WdtTradeOrderSyncServiceImpl implements WdtTradeOrderSyncService

原因分析

从问题解决的方法看来,分析可能原因为idea认为@Slf4j比@Service执行优先级高,所以再日志对象调用时没有对应的实例支撑,无法调用方法。
修改后先有类,然后有类中注入日志对象,所以日志可以正常输出。

其他@Slf4j无法使用情况

Idea没有安装lombok插件

如果开发工具没有安装lombok插件,不仅@Slf4无法使用,对应使用@Data的实体类中也会报错,大家经常说的使用lombok就是强X同事的说法就是因为这个,只要项目组有一人用了lombok,其他人都要安装lombok插件,否则代码一片红。
IntelliJ IDEA安装lombok步骤:
File–>Settings–>Plugins–>Marketplace–>搜索lombok–>install
执行完之后restart即可

Idea没开启annotation processing

如果开发工具没有开启注解enable annotation processing 也会引起注解不生效。
开启annotation processing步骤
File–>Settings–>Build,Ececution,Deployment–>Compiler–>Annotation Processors–>勾选 Enable annotation processing–>Apply即可

你可能感兴趣的:(开发工具常见问题,intellij,idea)