2015-03-08 2 views
3

Я пытаюсь использовать Spring Data JPA в проекте Spring Boot в этом tutorial. Это мои pom.xml зависимости:Почему настройки базы данных не применяются при использовании Spring Data JPA с Spring Boot?

<dependencies> 
    <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-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
</dependencies> 

и application.properties

# DataSource settings: set here configurations for the database connection 
spring.datasource.url = jdbc:mysql://localhost/dao 
spring.datasource.username = root 
spring.datasource.driverClassName = com.mysql.jdbc.Driver 
spring.datasource.password = 

# Specify the DBMS 
spring.jpa.database = MYSQL 

# Show or not log for each sql query 
spring.jpa.show-sql = true 

# Hibernate settings are prefixed with spring.jpa.hibernate.* 
spring.jpa.hibernate.ddl-auto = update 
spring.jpa.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect 
spring.jpa.hibernate.naming_strategy = org.hibernate.cfg.ImprovedNamingStrategy 

и я получаю эту ошибку:

Caused by: org.springframework.beans.factory.BeanCreationException: Cannot   determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath. 
at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.getDriverClassName(DataSourceProperties.java:137) 
at org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$NonEmbeddedConfiguration.dataSource(DataSourceAutoConfiguration.java:117) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiat e(SimpleInstantiationStrategy.java:162) 
... 40 more 

Есть ли проблема в конфигурации источника данных?

ответ

1

Ошибка в методе DataSourceProperties.getDriverClassName(). Найдите ниже исходного кода того же от распределения пружинной:

if (!StringUtils.hasText(driverClassName)) { 
    throw new BeanCreationException(
     "Cannot determine embedded database driver class for database type " 
      + this.embeddedDatabaseConnection 
      + ". If you want an embedded " 
      + "database please put a supported one on the classpath."); 
} 

Spring выдает эту ошибку, когда spring.datasource.driverClassName свойство пусто. Поэтому, чтобы исправить эту ошибку, убедитесь, что application.properties находится в пути к классам.

0

Я столкнулся с той же ошибкой, и проблема была в том, что application.properties не был упакован в банку , и я не предоставлял ее при запуске.

Если вы начинаете использовать java -jar you-jar-name.jar, убедитесь, что доступно приложение application.properties. За Документов:

SpringApplication загрузит свойства из application.properties файлов в следующих местах и ​​добавить их в весеннем среде:

A/конфигурационный подкаталог текущего каталога. Текущий каталог путь к классам/конфигурации пакета Путь к папкам корень

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files

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