Бин не автопроводка из другого пакета - PullRequest
0 голосов
/ 28 марта 2020

У меня есть класс конфигурации. В этом классе конфигурации я создаю компонент типа RestTemplate. Этот класс конфигурации находится в com.example.Config.

У меня есть Controller в пакете, расположенном в com.example.Controller.

В моем классе Main (который находится в com.example.Core) , У меня есть следующее:

@SpringBootApplication(scanBasePackages = {"com.example.Config", "com.example.Controller"})
@EnableDiscoveryClient
public class Main {
    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }
}

Я пытаюсь автоматически связать bean-компонент RestTemplate в моем Controller, но при запуске моего приложения я получаю следующую ошибку:

Field `restTemplate` in `com.example.Controller.HelloWebClientController` required a bean of type `org.springframework.web.client.RestTemplate` that could not be found.
- User-defined bean method `restTemplate` in `RestConfig`

Action:

Consider revisiting the entries above or defining a bean of type `org.springframework.web.client.RestTemplate` in your configuration.

Это мой класс конфигурации:

@Configuration
public class RestConfig {

    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

1 Ответ

0 голосов
/ 28 марта 2020

Если это возможно, вы можете переместить класс Main в пакет com.example (из пакета core). В этом случае вы можете использовать аннотацию @SpringBootApplication без указания пакетов для сканирования.

@SpringBootApplication
@EnableDiscoveryClient
public class Main {
    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }
}

Может быть, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...