Java 配置数据源属性
在JavaBean配置类中设置数据源属性时遇到问题。似乎没有从yaml文件正确读取属性。当试图访问驱动程序类名时,我收到一个空指针异常 这是我的java bean配置文件:Java 配置数据源属性,java,spring,datasource,Java,Spring,Datasource,在JavaBean配置类中设置数据源属性时遇到问题。似乎没有从yaml文件正确读取属性。当试图访问驱动程序类名时,我收到一个空指针异常 这是我的java bean配置文件: @Configuration public class AppConfig { @Autowired private DataSourceProperties properties; //other beans here @Bean public DataSource dataS
@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的DriverManager数据源代替Hikari,但仍然无法工作
这是src/main/resources中的my application.yml文件:
spring:
datasource:
driverClassName: 'com.ibm.db2.jcc.DB2Driver'
username: 'appUsername'
password: 'appPw'
url: 'datasourceURL'
是否有人遇到过类似的问题,并且知道如何正确设置属性?在应用程序中配置数据源时不需要额外的bean。yml在应用程序中配置数据源时不需要额外的bean。yml我的配置示例:
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
hikari还有其他选项,如connectionInitSql
。如前所述,不需要自己的配置。我的配置示例:
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
hikari还有其他选项,如
connectionInitSql
。如前所述,不需要自己的配置。删除您的AppConfig
。SpringBoot为您配置了所有这些。使用框架而不是围绕框架工作。删除您的AppConfig
。SpringBoot为您配置了所有这些。使用框架而不是围绕框架工作。您使用connectionInitSql:“SET NAMES'utf8mb4'
保存了我的一天!你用connectionInitSql:“设置名称'utf8mb4'”
保存了我的一天!