Ошибка при инициализации SolrRepository: неудовлетворительная зависимость выражена через поле

Вот код, который дал мне следующее исключение:

@SpringBootApplication
@ComponentScan(basePackages = { "com.ns.services.search", "com.ns.services.commons.exceptions" })
@EnableSolrRepositories(value = "com.ns.services.search", schemaCreationSupport = true, multicoreSupport =     true)
@EnableSwagger2
public class SearchServiceApplication {

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

    @Bean
    public HttpSolrClient solrClient() {
        return new HttpSolrClient("http://localhost:8983/solr");
    }

    @Bean
    public SolrTemplate solrTemplate(SolrClient client) throws Exception {
        return new SolrTemplate(client);
    }

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any()).build();
    }

    @Bean
    public SolrTemplate bookTemplate() throws Exception {
        SolrTemplate solrTemplate = new SolrTemplate(solrClient());
        solrTemplate.setSolrCore("demo");
        return solrTemplate;
    }

}

BookRepository.java

@NoRepositoryBean
public interface BookRepository extends SolrCrudRepository<Book, String> {

    List<Book> findByName(String name);

}

BookService.java

public interface BookService {

    Book addBookToIndex(Book book);

}

BookServiceImpl.java

@Service
public class BookServiceImpl implements BookService {

    public BookServiceImpl() {
        super();
    }

    @Autowired
    public BookRepository bookRepository;

    @Override
    public Book addBookToIndex(Book book) {
        return bookRepository.save(book);
    }

}

Трассировка исключений при попытке запуска сервиса:

org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем 'bookController': ошибка внедрения зависимостей с автопроводкой; вложенное исключение: org.springframework.beans.factory.BeanCreationException: не удалось автоматически связать поле: private com.neighbourspoon.services.search.repositories.BookRepository com.neighbourspoon.services.search.api.rest.BookController.bookRepository; вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: не найден квалифицирующий компонент типа [com.neighbourspoon.services.search.repositories.BookRepository] для зависимости: ожидается, что по крайней мере 1 компонент, который квалифицируется как кандидат для автоматической передачи этой зависимости. Аннотации зависимостей: {@org.springframework.beans.factory.annotation.Autowired(обязательный =true)} в org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues ​​(Autowired ~ org.6.RELEASE.jar:4.2.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) ~[spring-beans-4.2ASE. 4.2.6.ar.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6rara или beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] в org.springframework.bee.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] в org.springframework.beans.factory.support.Abstracte.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] в org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBjanF): ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] в org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) ~[spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) ~[spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] в org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] в org.springframework.boot.SpringApplication.createAndRefreshContext. (SpringApp).java:361) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] в org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] в org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] в org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] в com.neighbourspoon.services.search.main.SearchServiceApplication.main(SearchServiceApplication.java:26) [bin/:na] Вызвано: org.springframework.beans.factory.B eanCreationException: Не удалось автоматически связать поле: private com.neighbourspoon.services.search.repositories.BookRepository com.neighbourspoon.services.search.api.rest.BookController.bookRepository; вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: не найден квалифицирующий компонент типа [com.neighbourspoon.services.search.repositories.BookRepository] для зависимости: ожидается, что по крайней мере 1 компонент, который квалифицируется как кандидат для автоматической передачи этой зависимости. Аннотации зависимостей: {@org.springframework.beans.factory.annotation.Autowired(обязательный =true)} в org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(Autowiredena -4.2.6.RELEASE.jar: 4.2.6.RELEASE] в org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues ​​(AutowiredAnnotationBeanPostProcessor.java:331) ~[spring-beans-4.2.6.RELEASE.RAR.jar: 17 общих пропущенных фреймов. Причины: org.springframework.beans.factory.NoSuchBeanDefinitionException: не найден квалифицирующий компонент типа [com.neighbourspoon.services.search.repositories.BookRepository] для зависимости: ожидается, что по крайней мере 1 компонент, который квалифицируется как кандидат для автоматической передачи эта зависимость. Аннотации зависимостей: {@org.springframework.beans.factory.annotation.Autowired(обязательно =true)} в org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultLisory.jpg.6.RELEASE.jar:4.2.6.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1119) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] в org.spring.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] ... 19 стандартных фреймов опущено

2016-07-03 15:08:34.596 INFO 35332 ---

1 ответ

Трассировка стека содержит

Нет подходящего компонента типа [com.neighbourspoon.services.search.repositories.BookRepository]

Это из-за @NoRepositoryBean аннотация в BookRepository. Вы должны удалить это. Это используется только для пользовательских промежуточных репозиториев. Здесь вы напрямую расширяете репозиторий Spring Data.

Другие вопросы по тегам