Хранилище Spring Cant Inject - PullRequest
       11

Хранилище Spring Cant Inject

0 голосов
/ 05 октября 2018

Я не могу вставить репозиторий CRUD в Spring, я действительно разочарован, и я не могу найти решение, которое работает

Репозиторий

@Repository
public interface EntityRepository extends CrudRepository<entity,Long>{    
}
@Autowired EntityRepository eR

Ошибка: .. Требуется компонент типа EntityRepository, который не может быть найден

Consider defining a bean of type 'EntityRepository' in your configuration.

Мой главный

@SpringBootApplication
@ComponentScan({"de.xyz.*"}) 
@EntityScan("de.xyz.entities")
@EnableJpaRepositories("de.xyz.*") 
//@EnableEurekaClient
public class Application extends SpringBootServletInitializer {
    public static void main(String[] args){
        SpringApplication.run(Application.class, args);
    }    
}

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Шаг 1: Попробуйте включить оба класса в один пакет.Таким образом, вы можете сузить проблему сканирования компонентов.Удалите все остальные аннотации и оставьте только @ SpringBootApplication

Note : 
By default spring loads all the classes under the package of Application Class. 

Step2: Проверьте свои зависимости, убедитесь, что вы включили зависимости для репозиториев JPA.

Step3: Разместите ссылку на код GIT Hub, чтобы ее можно было посмотреть дальше.

В противном случае добавьте все пакеты в аннотацию сканирования компонентов, как показано ниже.@ComponentScan ({"abc", "abcdao"})

Как вы уже упоминали, существует класс конфигурации, который создает компоненты, попробуйте включить пакет этого класса в тот же пакет или включить его в сканирование компонентов.

Надеюсь, эта помощь.

0 голосов
/ 05 октября 2018

Другой способ сделать это - использовать поле basePackages;это поле внутри аннотации ComponentScan.

@ComponentScan(basePackages = {"de.xyz.repository"})
public class Application extends SpringBootServletInitializer {
    //  
}
...