[英]MapStruct - Cannot find implementation with IntelliJ
Using latest Springboot MapStruct 1.3.1 version to convert Dtos into an object.使用最新的 Springboot MapStruct 1.3.1 版本将 Dtos 转换为对象。 (Java 11, Gradle 6.6 version) I'm getting the following exception: (Java 11,Gradle 6.6 版本)我收到以下异常:
org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'userController' defined in
file [/directory/UserController.class]: Unsatisfied dependency expressed
through constructor parameter 0; nested exception is
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'userServiceImpl' defined in
file [/directory/UserServiceImpl.class]: Bean instantiation via constructor failed;
nested exception is
org.springframework.beans.BeanInstantiationException:
Failed to instantiate [package.service.UserServiceImpl]:
Constructor threw exception;
nested exception is
java.lang.RuntimeException: java.lang.ClassNotFoundException:
Cannot find implementation for package.service.mapper.UserMapper
Please could you take a look where I'm going wrong?请你看看我哪里出错了?
My code:我的代码:
build.gradle构建.gradle
compile group: 'org.mapstruct', name: 'mapstruct', version: '1.3.1.Final'
UserController.java用户控制器.java
@CrossOrigin(origins = "*", maxAge = 3306)
@RestController
@RequiredArgsConstructor
@RequestMapping("/user")
public class UserController {
private final UserServiceImpl userService;
@PostMapping
public ResponseEntity<UserDTO> login(UserDTO request) {
return ResponseEntity.ok(userService.login(request));
}
UserService.java用户服务.java
public interface UserService {
public UserDTO login(UserDTO user);
}
UserServiceImpl.java UserServiceImpl.java
@Service
@RequiredArgsConstructor
public class UserServiceImpl extends CheckException implements UserService {
private final UserRepository userRepository;
private UserMapper mapper = Mappers.getMapper(UserMapper.class);
@Override
public UserDTO login(UserDTO user) {
usernameParameterCheck(user.getId());
User currentUser = userRepository.findUserByIdAndPassword(user.getId(), user.getPassword());
userNullCheck(currentUser);
return mapper.entityToDto(currentUser);
}
}
UserMapper.java用户映射器
@Mapper(componentModel = "spring")
public interface UserMapper {
User dtoToEntity(UserDTO userDTO);
UserDTO entityToDto(User user);
}
我解决了这个问题:在 DTO 类中添加“@NoArgsConstructor”注释:D
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.