我已经尝试解决这个问题有一段时间了,但在我的 Spring Boot 项目中,在我扩展“RepresentationModelAssemblerSupport”的一个汇编器类中,当我扩展我开始拥有的类时,我找不到任何可以帮助我的东西与我的 Lombok
@AllArgsContructor
冲突,我用它不使用 @Autowired
保持代码干净,所以我无法编译,并且在注释“Lombok 需要基类中的默认构造函数”中收到以下警告,但我已经在类中有一个构造函数
经过大量研究,我发现在某些情况下其他注释(如
@NoArgsConstructor
和 @RequiredArgsConstructor
)有帮助,但我没有成功。
@Component
@AllArgsConstructor
public class SaleModelAssembler
extends RepresentationModelAssemblerSupport<Sale, SaleModel> {
@Autowired
private ModelMapper modelMapper;
enter image description here public SaleModelAssembler() {
super(SaleResource.class, SaleModel.class);
}
@Override
public SaleModel toModel(Sale sale) {
SaleModel saleModel = createModelWithId(sale.getCode(), sale);
modelMapper.map(sale, saleModel);
saleModel.getItems().forEach(saleItemModel -> {
saleItemModel.getProduct().add(linkTo(ProductResource.class)
.slash(saleItemModel.getProduct().getId()).withSelfRel());
});
return saleModel;
}
@Override
public CollectionModel<SaleModel> toCollectionModel(Iterable<? extends Sale> entities) {
return super.toCollectionModel(entities).add(linkTo(SaleResource.class).withSelfRel());
}
}
您需要向 RepresentationModelAssemblerSupport 添加 @NoArgsConstructor 注释。
请参阅文档此处