我遇到过以下问题。我想用通用
创建Spring @Component@Component
public class ResponseDtoValidator<DTO> {
public ResponseEntity<DTO> methodToInvoke(DTO dto) {
return Optional.ofNullable(dto).map(result -> new >ResponseEntity<>
(result, HttpStatus.OK))
.orElse(new ResponseEntity<>(HttpStatus.NOT_FOUND)); }
}
@Controller
public class SomeController {
@Inject
private ResponseDtoValidator<DTO1> responseDtoValidator1;
@Inject
private ResponseDtoValidator<DTO2> responseDtoValidator2;
public void someMethod() {
DTO1 dto1 = new DTO1();
DTO2 dto2 = new DTO2();
responseDtoValidator1.methodToInvoke(dto1);
responseDtoValidator2.methodToInvoke(dto2);
}
}
我可以像上面一样注入这个组件吗?实际上,我已经尝试了,它似乎工作正常,你能否确认我是否正确?
答案 0 :(得分:0)
首先,弹簧豆本身不能注射。
关于你的问题,是的,它是可注射的,但在注射时不要使用通用标志。只需正常注射它。当泛型类的方法正在使用时,发送泛型类型。
例如;
List
然后;
@Component
public class ResponseDtoValidator<DTO> {
public void getAbc(List<DTO> aList) {}
}