0

Вот код, который дал мне ниже исключение:Ошибка при инициализации 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); 
    } 

} 

Exception трассировки при попытке запуска службы:

org.springframework.beans.factory.BeanCreationException: Ошибка при создании боба с именем 'BookController': Инъекция autowired зависимости не удался; Вложенное исключение - это org.springframework.beans.factory.BeanCreationException: Не удалось autowire field: 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 компонент, который квалифицируется как кандидат autwire для этой зависимости. Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (required = true)} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues ​​(AutowiredAnnotationBeanPostProcessor.java:334) ~ [spring-beans- 4.2.6.RELEASE.jar: 4.2.6.RELEASE] на org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1214) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] на org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:543) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:482) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory $ 1.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.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] по адресу org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:772) ~ [spring-beans-4.2.6 .RELEASE.jar: 4.2.6.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:839) ~ [spring-context-4.2.6.RELEASE.jar: 4.2.6.RELEASE] в org.springframework.context.support. AbstractApplicationContext.refresh (AbstractApplicationContext.java:538) ~ [spring-context-4.2.6.RELEASE.jar: 4.2.6.RELEASE] в org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh (EmbeddedWebApplicationContext.java: 118) ~ [spring-boot-1.3.5.RELEASE.jar: 1.3.5.RELEASE] at org.springframework.boot.SpringApplication.refresh (SpringApplication.java:766) [spring-boot-1.3.5.RELEASE .jar: 1.3.5.RELEASE] at org.springframework.boot.SpringApplication.createAndRefreshContext (SpringApplication.java:361) [spring-boot-1.3.5.RELEASE.jar: 1.3.5.RELEASE] at org. springframework.boot.SpringApplicat ион.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 ] at com.neighbourspoon.services.search.main.SearchServiceApplication.main (SearchServiceApplication.java:26) [bin /: na] Вызвано: org.springframework.beans.factory.BeanCreationException: Не удалось создать поле autowire: 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 компонент, который квалифицируется как кандидат autwire для этой зависимости. Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (required = true)} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject (AutowiredAnnotationBeanPostProcessor.java:573) ~ [spring- beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] at org.springframework.beans.factory.notation.InjectionMetadata.inject (InjectionMetadata.java:88) ~ [spring-beans-4.2.6.RELEASE. jar: 4.2.6.RELEASE] на org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues ​​(AutowiredAnnotationBeanPostProcessor.java:331) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] ... 17 общих фреймов опущено Вызвано: org.springframework.beans.factory.NoSuchBeanDefinitionException: Отсутствует квалификационный компонент типа [com.neighbourspoon.services.search.reposito ries.BookRepository], найденный для зависимости: ожидается как минимум 1 компонент, который квалифицируется как кандидат autwire для этой зависимости. Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (required = true)} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException (DefaultListableBeanFactory.java:1373) ~ [spring-beans- 4.2.6.RELEASE.jar: 4.2.6.RELEASE] по адресу org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1119) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] на org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:1014) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutwiredFieldElement.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 ---

ответ

0

StackTrace содержит

Нет квалификационную боб типа [com.neighbourspoon .services.search.repositories.BookRepository]

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

 Смежные вопросы

  • Нет связанных вопросов^_^