Внедрение репозитория не распознается как компонент - PullRequest
0 голосов
/ 07 августа 2020

Всем привет

У меня эта упрощенная версия моей проблемы. Я пытаюсь запустить свое приложение, но это не удается, поскольку репозиторий не распознается для внедрения. Я уже пытался аннотировать репозиторий как службу и добавить пакет репозитория для сканирования, но ничего не работает. Может ли кто-нибудь мне помочь?

Я получаю исключение

Описание:

Поле topicRepository в br.com.alura.controller.TopicController требует bean-компонента типа 'br.com .alura.repository.TopicRepository ', который не может быть найден.

Точка внедрения имеет следующие аннотации: - @ org.springframework.beans.factory.annotation.Autowired (required = true)

Действие:

Рассмотрите возможность определения bean-компонента типа br.com.alura.repository.TopicRepository в вашей конфигурации.

Controller/Service

@Autowired
private TopicRepository topicRepository;

@GetMapping(value = "/api/topics", produces = MediaType.APPLICATION_JSON_VALUE)
public Page<TopicBriefOutputDto> listTopics(TopicSearchInputDto topicSearch, @PageableDefault(sort="creationInstant", direction=Sort.Direction.DESC) Pageable pageRequest) {
    Specification<Topic> topicSearchSpecification = topicSearch.build();
    Page<Topic> topics = this.topicRepository.findAll(topicSearchSpecification, pageRequest);
    return TopicBriefOutputDto.listFromTopics(topics);
}

Start

@SpringBootApplication
@Configuration
@ComponentScan(basePackages ={"br.com.alura.controller"})
@EntityScan
@EnableAutoConfiguration
@EnableJpaRepositories
@EnableSpringDataWebSupport
public class ForumApplication {

public static void main(String[] args) {
    SpringApplication.run(ForumApplication.class, args);
}

}

Repository

public interface TopicRepository extends Repository<Topic, Long>, JpaSpecificationExecutor<Topic> {

}

1 Ответ

0 голосов
/ 07 августа 2020

Вероятно, Вы указали неверный base package. Объем пакета слишком узок.

Попробуйте следующее:

@EnableJpaRepositories(basePackages = {"br.com.alura.repository"})

или измените br.com.alura.controller на br.com.alura

@ComponentScan(basePackages ={"br.com.alura"})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...