2016-09-26 68 views
2

我正在使用spring引導和項目配置文件。我在我的maven配置(pom.xml)中添加了一些配置文件,我嘗試導入application.propertie中的配置文件屬性,但我得到一個異常。

這裏我pom.xml中的一部分:

<build> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </resource> 
     </resources> 
     <sourceDirectory>src/main/java</sourceDirectory> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <configuration> 
        <mainClass>com.x.server.MainApplication</mainClass> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <profiles> 
      <profile> 
       <id>profile-development</id> 
       <properties> 
        <environment>dev</environment> 
        <db.username>me</db.username> 
        <db.password>testme</db.password> 
        <db.url>jdbc:mysql://localhost:3306/testdb</db.url> 
       </properties> 
       <activation> 
        <activeByDefault>true</activeByDefault> 
        <property> 
         <name>environment</name> 
         <value>dev</value> 
        </property> 
       </activation> 
      </profile> 

的應用性能:

spring.datasource.driver-class-name=com.mysql.jdbc.Driver 
spring.datasource.url=${db.url} 
spring.datasource.username=${db.username} 
spring.datasource.password=${db.password} 
spring.datasource.testOnBorrow=true 
spring.datasource.validationQuery=SELECT 1 
spring.jpa.show-sql=true 
spring.jpa.hibernate.ddl-auto=update 
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect 

,但我得到這個異常:

Caused by: java.sql.SQLException: Driver:[email protected] returned null for URL:${db.url} 
     at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:326) 
     at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:200) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:708) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:642) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:464) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:141) 
     at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:115) 
     at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:102) 
     at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:126) 
     at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:139) 
     at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:380) 
     at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:228) 
     ... 45 more 
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

有一個人任何想法?

+1

你怎麼配置bean?你能表演那堂課嗎?我想你錯過了PropertySource。 –

+0

我不能使用bean,但我在主類中使用了@EnableAutoConfiguration。 – emoleumassi

+0

好的。但是你的'$ {db.url}'和其他類似的屬性在哪裏定義? –

回答

0

在您的資料profile-development(可能)開發版本中,您定義了db.url。但錯誤似乎沒有解決表達${db.url}

最可能的錯誤是,構建沒有使用正確的配置文件,或實際上其他(默認)配置文件錯過db.url

+0

dev-profile是默認配置文件並具有db.url。當我編譯時,我用這個環境調用這個命令:mvn clean spring-boot:run -Denvironment = dev並得到相同的異常 – emoleumassi

+0

目標目錄中的生成(複製)應用程序屬性文件未被替換(過濾)?對不起,我不知道。 –