У меня есть простое приложение SpringBoot со следующими классами:
org.domain.abcpoc.controllers.DataController.java
package org.domain.abcpoc.controllers;
import org.domain.abcpoc.entities.UserEntity;
import org.domain.abcpoc.repositories.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/data")
public class DataController {
@Autowired
private UserRepository repo;
@GetMapping()
public String test() {
return "test";
}
@GetMapping("/user")
public UserEntity getUser() {
return repo.findById("E7####J2####1##").orElse(null);
}
}
org.domain.abcpoc.repositories.UserRepository.java
package org.domain.abcpoc.repositories;
import org.domain.abcpoc.entities.UserEntity;
import org.springframework.data.repository.CrudRepository;
public interface UserRepository extends CrudRepository<UserEntity, String> {
}
Мой основной класс Spring:
package org.domain.abcpoc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ClmConnectorService {
public static void main(String[] args) {
SpringApplication.run(ClmConnectorService.class, args);
}
}
И исключение, которое я получаю, это:
ПРИЛОЖЕНИЕ НЕ ЗАПУЩЕНО
Описание:
Обязательное поле repo в org.domain.abcpoc.controllers.DataController bean-компонент типа org.domain.abcpoc.repositories.UserRepository, который невозможно найти.
Точка впрыска имеет следующие аннотации:
- @org.springframework.beans.factory.annotation.Autowired(обязательно=true)
Действие:
Рассмотрим определение bean-компонента типа 'org.domain.abcpoc.repositories.UserRepository' в вашем конфигурация.
Может ли что-то еще быть проблемой, основанной на этом исключении и предоставленных классах? Конфигурация базы данных? пом.xml?
Это часть модуля Java, может быть что-то в родительском файле pom.xml?
Попробуйте добавить @EnableJpaRepositories в свой основной класс Spring. Вы можете добавить его прямо под @SpringBootApplication.
@StaticBeagle Это устранило эту проблему. Спасибо. Вы можете написать это как ответ, и я приму его.




Вы можете добавить аннотацию @EnableJpaRepositories к основному классу Spring следующим образом:
@SpringBootApplication
@EnableJpaRepositories
public class ClmConnectorService {
public static void main(String[] args) {
SpringApplication.run(ClmConnectorService.class, args);
}
}
Аннотируйте свой интерфейс аннотацией @Repository, после чего автоматическое сканирование spring-boot создаст bean-компонент UserRepository.
@EnableJpaRepositories также можно использовать, когда в вашем приложении настроено несколько источников данных.
вам нужно реализовать UserRepository и внедрить реализацию в контекст с помощью
@Componentили чего-то еще