Nuevo en Springboot, sé que esto se ha preguntado muchas veces....
Tengo el siguiente controlador que tiene un CustomRestTemplate autocableado. CustomRestTemplate tiene otro bean autocableado llamado RestClientConfig.
RestClientConfig siempre es nulo? Anoté con @Component pero nunca se inicializa dentro de CustomRestTemplate
@RestController @RequestMapping("/catalog") public class CatalogController { @Autowired private CustomRestTemplate restTemplate; . .CustomRestTemplate tiene RestClientConfig autocableado
RestClientConfig inyectado dentro de CustomRestTemplate siempre es nulo, ¿por qué?
@Component public class CustomRestTemplate{ @Autowired private RestClientConfig restClientConfig // always null; public CustomRestTemplate() { } } @Component public class RestClientConfig { private String val; public RestClientConfig() { this.val = "test"; } }Es debido al constructor sin argumentos proporcionado en la clase CustomRestTemplate que tiene prioridad al crear Spring Bean, hay dos formas de solucionar esto: eliminar el constructor y Autowire usando el campo
@Component public class CustomRestTemplate{ @Autowired private RestClientConfig restClientConfig; } O agregue RestClientConfig como argumento en el constructor y use el cableado automático del constructor
@Component public class CustomRestTemplate{ private RestClientConfig restClientConfig; @Autowired public CustomRestTemplate(RestClientConfig restClientConfig) { this.restClientConfig = restClientConfig; } }