我有一个Spring Boot应用2.0.5.RELEASE
,其版本 1.18.2
具有 lombok 依赖性,并且scope
设置为{{1 }}。
例如:
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
并将其直接放置时:
@AllArgsConstructor
然后它起作用了,在public UserController(UserRepository repository) {
this.repository = repository;
}
字段中注入了适当的组件。对于repository
类,情况相同。定义了:
UserDTO
@Getter @Setter
public class UserDTO {
private int id;
private String firstName;
private String lastName;
}
无法找到吸气剂并引发异常。如果“正常”创建吸气剂(没有第三方库),则一切正常。
我在做什么错?为什么龙目岛没有生成应有的东西?
答案 0 :(得分:1)
我通过在“设置”->“编译器”->“注释处理器”中选中“启用注释处理”复选框来修复它。
答案 1 :(得分:1)
除了在 Intellij IDE 中启用注释处理的其他答案之外,我们还需要添加一个插件以使 IDE 理解 Lombok 项目。 安装 Lombok 插件:设置 > 插件 > Lombok。
答案 2 :(得分:0)
Settings-> Build / Execution / Deployment->编译器-> Annotation Processors->启用Annotation Processor ckeck