考虑在您的配置中定义'UserConverter'类型的Bean

问题描述 投票:0回答:1

我不知道我的Spring Boot应用程序发生了什么,但是现在我无法启动它,因为我看到错误:


申请无法开始


说明:webapp.controllers.UserResourceController中的字段userConverter需要找不到类型为'webapp.converter.UserConverter'的bean。注入点具有以下注释:-@ org.springframework.beans.factory.annotation.Autowired(必填= true)行动:考虑在配置中定义类型为“ webapp.converter.UserConverter”的bean。流程以退出代码1]完成

我的代码:

@RestController
@RequestMapping("/api/user")
public class UserResourceController {

@Autowired
private UserServiceImpl userService;

@Autowired
private UserConverter userConverter;

@PostMapping
public ResponseEntity<UserDto> addUser(@RequestBody UserDto userDto) {
    userService.persist(userConverter.toUser(userDto));
    return ResponseEntity.ok().body(userDto);
}

@GetMapping
public ResponseEntity<List<UserDto>> findAllUsers() {
    return ResponseEntity.ok(userConverter.toUserDtos(userService.getAll()));
}

@PutMapping("/api/user/{id}")
public ResponseEntity<UserDto> updateUser(@PathVariable Long id, @RequestBody UserDto userDto) {
    User user = userConverter.toUser(userDto);
    user.setId(id);
    userService.persist(user);
    return ResponseEntity.ok().body(userDto);
}

@GetMapping("/api/user/{id}")
public ResponseEntity<UserDto> findUser (@PathVariable Long id) {
    Optional<User> user = Optional.ofNullable(userService.getByKey(id));
    return ResponseEntity.ok(userConverter.toUserDto(user.get()));
}
}

映射器类:

@Mapper(componentModel = "spring")
@Service
public abstract class UserConverter {
public abstract User toUser(UserDto userDto);
public abstract UserDto toUserDto(User user);
public abstract List<UserDto> toUserDtos(List<User> users);
}

[我最初尝试在没有@Service批注的情况下运行它,并且比带有批注的运行,但我总是看到相同的错误:(请帮助正确运行我的应用程序。谢谢。

我不知道我的Spring Boot应用程序发生了什么,但是现在我无法启动它,因为我看到错误:应用程序启动失败说明:webapp.controllers中的field userConverter ....

java spring javabeans
1个回答
0
投票

您无法注入没有任何实际实现的抽象类。即使没有Spring,在Java中也是不可能的。那么,您是否期望它可以被注入?

© www.soinside.com 2019 - 2024. All rights reserved.