Я получаю следующую ошибку:
Field ansRepo in com.myproject.services.ansService required a bean of type 'com.myproject.repositories.ansRepo' that could not be found.
У меня есть контроллер, который имеет 4 службы с автоматической аннотацией:
@RestController
public class Controller {
@Autowired
private AnsService ansService
@Autowired
private QService QService;
@Autowired
private UService UService;
Каждая из этих служб имеет аннотацию @Service:
@Service
public class ansService {
@Autowired
private AnsRepo ansrepo;
Каждый репозиторий также имеет аннотацию @Repository:
@Repository
public interface AnsRepo extends JpaRepository<Ans,Long> {
...
}
Ошибка появляется для первого объекта с автопроводкой в контроллере, поэтому кажется, что приложение Spring не может найти классы с автопроводкой ..
Структура моего проекта:
-com.myproject
----Main.java
----controllers
------------Controller.java
----entities
------------ans.java
----repositories
------------ansRepo.java
----services
------------ansService.java
мой главный:
package com.postmalone.Application;
import org.springframework.boot.SpringApplication;
@SpringBootApplication(scanBasePackages={"com.myproject.controllers",
"com.myproject.services", "com.myproject.repositories",
"com.myproject.entities"})
public class Main {
public static void main(String[] args) throws InterruptedException {
SpringApplication.run(Main.class,args);
Я почти уверен, что проблема связана с аннотацией @SpringBootApplication. Я видел много сообщений об этой ошибке, но в моем случае я реализовал уже все решения, которые были предоставлены.
Есть идеи, что еще мне проверить?
---- UPDATE ---
Я добавил в свое главное приложение аннотацию @EnableJpaRepositories ("com.myproject.repositories"). Теперь я получил следующую ошибку:
Field ansRepo in com.postmalone.services.AnswService required a bean named 'entityManagerFactory' that could not be found.
Зависимости в моем файле pom.xml:
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.1.4</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.6.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.3.6.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
</dependencies>
Есть идеи, почему мне нужно упомянуть аннотацию @EnableJPARepostiory, когда у меня есть приложение @SpringBootApplication? И почему я получаю эту ошибку?