У меня есть пакет с именем com.example.service
, а в моем классе конфигурации Spring у меня есть аннотация @ComponentScan({"com.example.service"},{"com.example.controller"})
.Spring @ComponentScan for @Service
Когда я пытаюсь выполнить @Autowire
, компиляция кода не выполняется с помощью NoSuchBeanDefinitionException
. Интерфейс MyService аннотируется @Service
.
В настоящее время я использую довольно уродливый обходной путь и объявить каждый компонент службы в моем ExampleConfig.java как
@Bean
public MyService myService() {
return new MyServiceImpl();
}
@ComponentScan
Вообще, кажется, работает, если удалить пакет контроллера, диспетчеры не найдены. Что я понял неправильно? Пожалуйста, дайте мне знать, если я пропустил какую-либо соответствующую информацию.
Исключение не происходит во время компиляции. Сохраняйте типы ошибок отдельно, или вы будете искать решения в неправильных местах. – chrylis
Вы абсолютно правы. В этом пункте я был неточным с моим описанием. – dexBerlin