【发布时间】:2020-07-27 02:20:56
【问题描述】:
我正在尝试使用 MapStruct 进行 DTO 到实体(产品)的映射,反之亦然,请参阅 blog。
├── product
├── Product.java
├── ProductAPI.java
├── ProductDTO.java
├── ProductMapper.java
├── ProductRespository.java
└── ProductService.java
在控制器中,productService(@Service) 和 productMapper(@Mapper) 看不到 @Autowired。
import java.util.List;
import java.util.Optional;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RequiredArgsConstructor
@RestController
@RequestMapping("/products")
public class ProductAPI {
private final ProductService productService;
private final ProductMapper productMapper;
@GetMapping
public ResponseEntity<List<ProductDTO>> findAll() {
return ResponseEntity.ok(productMapper.toProductDTOs(productService.findAll()));
}
@PostMapping
public ResponseEntity<ProductDTO> create(@RequestBody ProductDTO productDTO) {
productService.save(productMapper.toProduct(productDTO));
return ResponseEntity.status(HttpStatus.CREATED).body(productDTO);
}
}
我想知道为什么 MapStruct 类没有依赖注入(即prodcutMapper)。
是不是因为 Mapstruct 框架负责在控制器层调用自己? @Service 服务层也一样吗?
【问题讨论】:
标签: java spring dependency-injection autowired mapstruct