Я делаю очень глупую ошибку, но не могу понять, как исправить.
У меня есть простое приложение SpringBoot, использующее профили, которые подключаются к MongoDb.
Мои pom.xml зависимости:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
My StudentController.java
@RestController
@RequestMapping("/students")
public class StudentController {
@Autowired
private StudentService studentService;
@RequestMapping(method = RequestMethod.GET)
public Collection<Student> getAllStudents(){
return studentService.getAllStudents();
}
}
Мой StudentService.java
@Service
public class StudentService {
@Autowired
private StudentDao studentDao;
public Collection<Student> getAllStudents(){
return this.studentDao.getAllStudents();
}
}
Мой StudentDao.java Интерфейс:
public interface StudentDao {
Collection<Student> getAllStudents();
}
My MongoStudentDaoImpl.java :
@Repository
@Profile("test")
public class MongoStudentDaoImpl implements StudentDao {
@Autowired
private MongoStudentRepo repo;
@Override
public Collection<Student> getAllStudents() {
return repo.findAll();
}
}
My MongoStudentRepo.java :
@Profile("test")
public interface MongoStudentRepo extends MongoRepository<Student, String> {
}
Когда я пытаюсь запустить приложение, используя профиль «test», я вижу ошибку:
Исключительная ситуация при инициализации контекста - отмена
попытка обновления:
org.springframework.beans.factory.UnsatisfiedDependencyException:
Ошибка создания бина с именем studentController: неудовлетворен
зависимость выражается через поле 'studentService'; вложенное исключение
isg.springframework.beans.factory.UnsatisfiedDependencyException:
Ошибка создания компонента с именем studentService: неудовлетворенная зависимость
выражается через поле 'studentDao'; вложенное исключение
org.springframework.beans.factory.UnsatisfiedDependencyException:
Ошибка создания бина с именем mongoStudentDaoImpl: неудовлетворен
зависимость выражается через поле «репо»; вложенное исключение
org.springframework.beans.factory.NoSuchBeanDefinitionException: нет
доступен квалифицирующий компонент типа «MongoStudentRepo»:
ожидается, по крайней мере, 1 боб, который считается кандидатом autowire.
Аннотации зависимостей:
{@ Org.springframework.beans.factory.annotation.Autowired (обязательно = истина)}
Что мне здесь не хватает? Нужно ли добавлять аннотацию к MongoStudentRepo.java
?
Заранее спасибо.