【发布时间】:2018-10-23 03:57:34
【问题描述】:
有没有办法将依赖项注入 Spring RestControllers 提供的 POJO 中?例如,如果你想实现多态行为。
以下示例因NullPointerExcetion 而失败,因为lowerCaseService 未注入Example POJO:
@RestController
public class ExampleController {
@PostMapping("/example")
String example(@RequestBody Example example) {
return example.valueToLowerCase();
}
}
@Data
@NoArgsConstructor
public class Example {
private String value;
@Autowired
private LowerCaseService lowerCaseService;
public String valueToLowerCase() {
return lowerCaseService.toLowerCase(getValue());
}
}
@Service
public class LowerCaseService {
public String toLowerCase(String value) {
return value != null ? value.toLowerCase() : null;
}
}
请注意,这个人为设计的示例有意简单,不需要多态行为。我以这种方式创建它是为了帮助响应者快速理解它,而不是被杰克逊的注释所困扰。在我的实际用例中,Jackson 将生成 Example 的子类,每个子类需要做非常不同的事情,具有不同的依赖关系。
【问题讨论】:
标签: java spring spring-boot jackson