2017-06-11 55 views
1

我不確定我的配置有什麼問題,但據我所知應該是正確的,儘管Spring宣稱沒有這樣的bean定義。我veryfied以下幾點:Spring Boot似乎無法找到存儲庫

  • 的配置類是根包一切
  • 存儲庫擴展JpaRepository的,因此不需要註解
  • 玩家對象標註有「@Entity」
  • 此存儲庫的pojo完全按照註釋映射
  • 不存在非java配置文件
  • 數據庫已設置並使用正確的憑據。
  • 爲了開發目的,Jpa/hibernate設置爲「Create-Update」。

這裏是我完整的調試日誌: spring startup log pastebin

日誌,而無需調試標誌:

2017-06-12 09:34:36.395 INFO 12880 --- [ restartedMain] 
d.a.c.newworlds.NewWorldsApplication  : No active profile set, falling back to default profiles: default 
2017-06-12 09:34:36.727 INFO 12880 --- [ restartedMain] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot[email protected]10057b9b: startup date [Mon Jun 12 09:34:36 CEST 2017]; root of context hierarchy 
2017-06-12 09:34:38.090 INFO 12880 --- [ restartedMain] o.s.b.f.s.DefaultListableBeanFactory  : Overriding bean definition for bean 'playerRepository' with a different definition: replacing [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] 
2017-06-12 09:34:38.107 INFO 12880 --- [ restartedMain] o.s.b.f.s.DefaultListableBeanFactory  : Overriding bean definition for bean 'userAccountRepository' with a different definition: replacing [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] 
2017-06-12 09:34:38.115 INFO 12880 --- [ restartedMain] o.s.b.f.s.DefaultListableBeanFactory  : Overriding bean definition for bean 'organizationRepository' with a different definition: replacing [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] 
2017-06-12 09:34:38.612 INFO 12880 --- [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration' of type [class org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
2017-06-12 09:34:38.664 INFO 12880 --- [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'validator' of type [class org.springframework.validation.beanvalidation.LocalValidatorFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
2017-06-12 09:34:38.701 INFO 12880 --- [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [class org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$93eeb181] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
2017-06-12 09:34:39.009 INFO 12880 --- [ restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http) 
2017-06-12 09:34:39.019 INFO 12880 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service Tomcat 
2017-06-12 09:34:39.020 INFO 12880 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.11 
2017-06-12 09:34:39.243 INFO 12880 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]  : Initializing Spring embedded WebApplicationContext 
2017-06-12 09:34:39.243 INFO 12880 --- [ost-startStop-1] o.s.web.context.ContextLoader   : Root WebApplicationContext: initialization completed in 2521 ms 
2017-06-12 09:34:39.635 INFO 12880 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 
2017-06-12 09:34:39.635 INFO 12880 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 
2017-06-12 09:34:39.636 INFO 12880 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*] 
2017-06-12 09:34:39.636 INFO 12880 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*] 
2017-06-12 09:34:39.637 INFO 12880 --- [ost-startStop-1] .s.DelegatingFilterProxyRegistrationBean : Mapping filter: 'springSecurityFilterChain' to: [/*] 
2017-06-12 09:34:39.637 INFO 12880 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/] 
2017-06-12 09:34:40.130 INFO 12880 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default' 
2017-06-12 09:34:40.156 INFO 12880 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ 
name: default 
...] 
2017-06-12 09:34:40.266 INFO 12880 --- [ restartedMain] org.hibernate.Version     : HHH000412: Hibernate Core {5.0.11.Final} 
2017-06-12 09:34:40.267 INFO 12880 --- [ restartedMain] org.hibernate.cfg.Environment   : HHH000206: hibernate.properties not found 
2017-06-12 09:34:40.271 INFO 12880 --- [ restartedMain] org.hibernate.cfg.Environment   : HHH000021: Bytecode provider name : javassist 
2017-06-12 09:34:40.324 INFO 12880 --- [ restartedMain] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 
2017-06-12 09:34:40.890 INFO 12880 --- [ restartedMain] org.hibernate.dialect.Dialect   : HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect 
2017-06-12 09:34:41.031 WARN 12880 --- [ restartedMain] org.hibernate.cfg.AnnotationBinder  : HHH000138: Mixing inheritance strategy in a entity hierarchy is not allowed, ignoring sub strategy in: de.awesome.corporate.newworlds.core.planets.entity.AbstractPlanetoid 
2017-06-12 09:34:41.186 WARN 12880 --- [ restartedMain] o.h.b.i.SessionFactoryBuilderImpl  : Unrecognized hbm2ddl_auto value : create-update. Supported values include create, create-drop, update, and validate. Ignoring 
2017-06-12 09:34:41.604 INFO 12880 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 
2017-06-12 09:34:41.930 WARN 12880 --- [ restartedMain] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'playerRegistrationController': Unsatisfied dependency expressed through field 'registrationService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'registrationService': Unsatisfied dependency expressed through field 'playerRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'de.awesome.corporate.newworlds.core.usermanagement.repository.PlayerRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
2017-06-12 09:34:41.931 INFO 12880 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 
2017-06-12 09:34:41.944 INFO 12880 --- [ restartedMain] utoConfigurationReportLoggingInitializer : 

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 
2017-06-12 09:34:42.090 ERROR 12880 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter : 

*************************** 
APPLICATION FAILED TO START 
*************************** 

Description: 

Field playerRepository in de.awesome.corporate.newworlds.core.usermanagement.service.RegistrationService required a bean of type 'de.awesome.corporate.newworlds.core.usermanagement.repository.PlayerRepository' that could not be found. 


Action: 

Consider defining a bean of type 'de.awesome.corporate.newworlds.core.usermanagement.repository.PlayerRepository' in your configuration. 

我SpringBootApplication:

package de.awesome.corporate.newworlds; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 

@SpringBootApplication 
public class NewWorldsApplication { 

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

我PlayerRepository:

package de.awesome.corporate.newworlds.core.usermanagement.repository; 

import org.springframework.data.jpa.repository.JpaRepository; 

import de.awesome.corporate.newworlds.core.usermanagement.entity.Player; 

public interface PlayerRepository extends JpaRepository<Player, String>{ 

    Player findByUserAccount(String useraccount); 

} 

調用服務:

package de.awesome.corporate.newworlds.core.usermanagement.service; 
@Service 
public class RegistrationService { 

    @Autowired 
    private PlayerRepository playerRepository; 

    @Autowired 
    private UserAccountRepository userRepository; 

    @Autowired 
    private OrganizationCreationService organizationCreationService; 

    @Autowired 
    private BCryptPasswordEncoder passwordEncoder; 
} 

POM:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>de.awesome.corporate.newworlds</groupId> 
<artifactId>New-Worlds</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 

<name>new-worlds</name> 
<description>Text-based Management Game</description> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.1.RELEASE</version> 
    <relativePath /> <!-- lookup parent from repository --> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-aop</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-hateoas</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.session</groupId> 
     <artifactId>spring-session</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-devtools</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

編輯:看來,從聚甲醛去除彈簧數據的JPA起動器,再經過重新插入它現在自動裝配密碼編碼器也有問題。 春天做自動裝配的方式有一個普遍的問題嗎?

+0

在問題本身中粘貼日誌,POM等。 – chrylis

+0

現在,我的問題爲什麼被拒絕? –

+0

請不要讓人們點擊鏈接以獲得完整的圖片。將其添加到您的問題。另外我懷疑你說的是你的pom是你的實際pom文件。請添加您的**實際** pom文件而不是** effective ** pom.xml。 –

回答

0

顯然,在項目結構的某處,有一個不同版本的存儲庫和一個不同版本的播放器。

雖然通常我會指望Spring產生一個錯誤,告訴我有多個服務具有相同的類型描述,我懷疑由於player和playerRepository都是重複的,所以這種機制並沒有產生預期的錯誤方法,而是告訴我,沒有這個名字的服務。

0

您應該添加

@Repository(value = "playerRepository") 

註釋只是你的類

+0

不,接口擴展JpaRepository,因此不需要註釋 –

相關問題