Мне понадобился объект RestTemplate в моем @RestController
классе "personController", поэтому я объявил его, как показано ниже.
@Autowired
private RestTemplate restTemplate;
, когда я попытался использовать его, я получил приведенное ниже поле ошибки restTemplate в com.example.demo.api.PersonController требуется компонент типа org.springframework.web.client.RestTemplate
, который не может быть найден.Подумайте об определении bean-компонента типа org.springframework.web.client.RestTemplate
в вашей конфигурации.
Чтобы преодолеть ошибку, я объявляю @Bean
для повторного шаблона, как показано ниже в файле config.java, и он работает нормально и не выдает никакой ошибки.
@Bean
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate();
return restTemplate;
}
Я использую com.fasterxml.jackson.databind.ObjectMapper
объект в @Service
классе "personService", и я автоматически подключил его, как показано ниже.
@Autowired
private ObjectMapper objectMapper;
Я могу использовать объект сопоставления без объявления каких-либобоб для него и его нормально работает.Я хотел понять,
- Почему objectmapper работает без bean-компонента, но resttemplate не работает без bean-компонента и ожидает, что bean-компонент будет объявлен?
- Когда создавать бин, а когда просто использовать обычный
@Autowired
без бобов?как я могу узнать это, посмотрев на нее?