#spring #spring-boot #spring-data-jpa #spring-data
Вопрос:
Я создаю приложения, которые могли бы использовать одни и те же сущности и классы репозитория. Поэтому я создаю библиотеку с этими объектами, устанавливаю ее в Maven и включаю зависимость pom.xml
в новый проект. Однако, когда я вызываю страницу, появляется ошибка ниже.
Библиотека содержит класс БД конфигурации, и в объявлении службы all в контроллере нового проекта я использую аннотацию @Autowired
. Tomcat не показывает никаких проблем при запуске.
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-08-02 09:54:53.546 ERROR 20368 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Field repository in br.com.service.PersonService required a bean of type 'br.com.repository.PersonRepository' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'br.com.repository.PersonRepository' in your configuration.
Редактировать:
Конфигурация:
@SpringBootApplication
@EntityScan(basePackages = { "br.com.*" })
@EnableCassandraRepositories(basePackages = { "br.com.*" })
@ComponentScan(basePackages = {"br.com.*"})
public class App extends SpringBootServletInitializer
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
}
}
POM.XML с моей библиотекой с объектами общего пользования:
<dependency>
<groupId>br.com</groupId>
<artifactId>objetos.base</artifactId>
<version>1.2.2</version>
</dependency>
Репозиторий Lib:
@Repository
public interface PersonRepository extends CassandraRepository<Person, UUID>{
Служба Lib:
@Service
public class PersonService {
@Autowired
private PersonRepository repository;
Кто-нибудь имеет хоть малейшее представление о том, что происходит?
Комментарии:
1. Это
PersonRepository
внушено@Repository
?2. вы пробовали назвать пакет без подстановочного знака?
@EnableCassandraRepositories(basePackages = { "br.com.repository" } )
или просто@EnableCassandraRepositories("br.com.repository")
3. @thepaoloboi, я обновил вопрос.
4. Ваша реализация кажется мне правильной. Я попытался воспроизвести ваш вариант использования, и все прошло хорошо. Какую версию
spring-boot
вы используете?5. Вы нашли ответ на этот вопрос? Просто взглянув на некоторые примеры , нужно ли вам предоставлять базовый класс конфигурации
AbstractCassandraConfiguration
?