项目场景:黑马tlias管理系统
问题描述
实现黑马tlias管理系统时,使用了lombok的注解@NoArgsConstructor和@Lsf4j,但是运行时报错找不到无参构造函数和找不到符号log。
idea版本2024.2.4,lombok版本1.18.36,JDK版本21。
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result {
private Integer code;
private String msg;
private Object data;
public static Result success(){
return new Result(1,"success",null);
}
public static Result success(Object data){
return new Result(1,"success",data);
}
public static Result error(String msg){
return new Result(0, msg, null);
}
}
@RestController
@Slf4j
public class DeptController {
// private static Logger log = LoggerFactory.getLogger(DeptController.class);
@RequestMapping("/depts")
public Result list(){
log.info("查询所有部门数据");
return Result.success();
}
}
尝试了网上常见的几种解决方法后,都没能修复该bug。
包括:
- 更改lombok版本
- 使缓存失效
- 安装lombok插件(idea捆绑,无需安装)
- 启用注解处理
解决方案:
在查找了lombok官方网页后发现,JDK9+版本中需要在pom文件中加入插件配置:
JDK9+ with module-info.java
The configuration of the compiler plug-in should contain the following:<annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.36</version> </path> </annotationProcessorPaths>
打开pom文件,发现少了一行1.18.36,添加后version版本后程序正常了。