我不確定我的配置有什麼問題,但據我所知應該是正確的,儘管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起動器,再經過重新插入它現在自動裝配密碼編碼器也有問題。 春天做自動裝配的方式有一個普遍的問題嗎?
在問題本身中粘貼日誌,POM等。 – chrylis
現在,我的問題爲什麼被拒絕? –
請不要讓人們點擊鏈接以獲得完整的圖片。將其添加到您的問題。另外我懷疑你說的是你的pom是你的實際pom文件。請添加您的**實際** pom文件而不是** effective ** pom.xml。 –