Lombok注解无效
Lombok annotations has no effect
我有一个 spring 启动应用程序 2.0.5.RELEASE
与 lombok 依赖版本 1.18.2
scope
设置为 provided
。
一个例子:
@RestController
@RequestMapping("/users")
@AllArgsConstructor
public class UserController {
private static final UserMapper mapper = Mappers.getMapper(UserMapper.class);
private UserRepository repository;//It's null, nothing gets injected
@GetMapping("/")
public ResponseEntity<List<UserDTO>> getUsers() {
final List<User> users = (List<User>) repository.findAll();
return new ResponseEntity<>(users.stream()
.map(mapper::toDto)
.collect(Collectors.toList()), HttpStatus.OK);
}
}
在那种情况下,我收到一个错误,因为 repository
字段是 null
。当我去掉lombok @AllArgsConstructor
直接放的时候:
public UserController(UserRepository repository) {
this.repository = repository;
}
然后它起作用了,在repository
字段中注入了一个合适的组件。 UserDTO
class也是同样的情况。定义:
@Getter @Setter
public class UserDTO {
private int id;
private String firstName;
private String lastName;
}
Jackson
无法找到吸气剂并抛出异常。如果创建了吸气剂,一切正常"normally"(没有第 3 方库)。
我做错了什么?为什么 lombok 没有生成它应该生成的东西?
我通过勾选设置->编译器->注释处理器中的 "Enable annotation processing" 复选框来修复它。
设置->Build/Execution/Deployment->编译器->注释处理器->启用注释处理器ckeck
除了在 Intellij IDE 中启用注释处理的其他答案外,我们需要添加一个插件以使 IDE 理解 Lombok 项目。
安装 Lombok 插件:设置 > 插件 > Lombok.
我有一个 spring 启动应用程序 2.0.5.RELEASE
与 lombok 依赖版本 1.18.2
scope
设置为 provided
。
一个例子:
@RestController
@RequestMapping("/users")
@AllArgsConstructor
public class UserController {
private static final UserMapper mapper = Mappers.getMapper(UserMapper.class);
private UserRepository repository;//It's null, nothing gets injected
@GetMapping("/")
public ResponseEntity<List<UserDTO>> getUsers() {
final List<User> users = (List<User>) repository.findAll();
return new ResponseEntity<>(users.stream()
.map(mapper::toDto)
.collect(Collectors.toList()), HttpStatus.OK);
}
}
在那种情况下,我收到一个错误,因为 repository
字段是 null
。当我去掉lombok @AllArgsConstructor
直接放的时候:
public UserController(UserRepository repository) {
this.repository = repository;
}
然后它起作用了,在repository
字段中注入了一个合适的组件。 UserDTO
class也是同样的情况。定义:
@Getter @Setter
public class UserDTO {
private int id;
private String firstName;
private String lastName;
}
Jackson
无法找到吸气剂并抛出异常。如果创建了吸气剂,一切正常"normally"(没有第 3 方库)。
我做错了什么?为什么 lombok 没有生成它应该生成的东西?
我通过勾选设置->编译器->注释处理器中的 "Enable annotation processing" 复选框来修复它。
设置->Build/Execution/Deployment->编译器->注释处理器->启用注释处理器ckeck
除了在 Intellij IDE 中启用注释处理的其他答案外,我们需要添加一个插件以使 IDE 理解 Lombok 项目。 安装 Lombok 插件:设置 > 插件 > Lombok.