2017-07-27 111 views
0

我無法在我的java bean配置類中設置我的數據源屬性。看起來這些屬性沒有正確地從yaml文件中讀取。當試圖訪問驅動程序類名時,我得到一個空指針異常。配置數據源屬性

這是我的java bean的配置文件:

@Configuration 
public class AppConfig { 

    @Autowired 
    private DataSourceProperties properties; 

    //other beans here 

    @Bean 
    public DataSource dataSource(){ 
     HikariDataSource dataSource = new HikariDataSource(); 
     dataSource.setDriverClassName(properties.getDriverClassName()); 
     dataSource.setJdbcUrl(properties.getUrl()); 
     dataSource.setUsername(properties.getUsername()); 
     dataSource.setPassword(properties.getPassword()); 

    @Bean 
    public DataSourceProperties properties(){ 
     return new DataSourceProperties(); 
    } 
} 

我也試過:

@Configuration 
public class AppConfig { 

    //other beans here 

    @Bean 
    public DataSource dataSource(DataSourceProperties properties){ 
     HikariDataSource dataSource = new HikariDataSource(); 
     dataSource.setDriverClassName(properties.getDriverClassName()); 
     dataSource.setJdbcUrl(properties.getUrl()); 
     dataSource.setUsername(properties.getUsername()); 
     dataSource.setPassword(properties.getPassword()); 

     return dataSource; 
    } 

    @Bean 
    public DataSourceProperties properties(){ 
     return new DataSourceProperties(); 
    } 

} 

我還試圖用springframeowrk.jdbc的DriverManagerDataSource這個不是光速,但它仍然是行不通的。

這在src /主/資源我application.yml文件:

spring: 
    datasource: 
     driverClassName: 'com.ibm.db2.jcc.DB2Driver' 
     username: 'appUsername' 
     password: 'appPw' 
     url: 'datasourceURL'  

有沒有人也有類似的問題,這和知道如何設置被正確設置的屬性?

+1

刪除你的AppConfig。 Spring Boot爲您配置所有這些。與框架一起工作不在框架周圍。 –

回答

1

,當你在我的配置的application.yml

1

實例配置數據源,您不需要額外的豆類:

spring: 
    datasource: 
    driverClassName: org.mariadb.jdbc.Driver 
    url: jdbc:mysql://localhost:3306/db 
    username: user 
    password: pass 
    connectionInitSql: "SET NAMES 'utf8mb4'" # hikari 
    validationQuery: SELECT 1 
    type: com.zaxxer.hikari.HikariDataSource 

阿光有一個像connectionInitSql附加選項。如已經暗示的那樣,不需要自己的配置。

+0

你用'connectionInitSql:'SET NAMES'utf8mb4'「'保存了我的一天! – psv