在 Spring Boot 中配置数据源

开发

我有一个弹簧启动应用程序,

目前将此配置用于数据源

@PropertySource("file:D:\\Spring Workspace\\test\\dbconfig.properties")
public class DataSourceConfig {
    @Value("db_driverClassName")
    private String className;
    @Value("db_url")
    private String url;
    @Value("db_username")
    private String username;
    @Value("db_userpassword")
    private String password;
    
    @Bean
    public DataSource getDataSource() {
        dataSourceBuilder.driverClassName(className);
        dataSourceBuilder.url(url);
        dataSourceBuilder.username(username);
        dataSourceBuilder.password(password);
        return dataSourceBuilder.build();
    }
}

dbconfig.properties 文件

db_driverClassName="org.postgresql.Driver"
db_url="jdbc:postgresql://localhost:5432/testDB"
db_username="postgres"
db_userpassword="password"

例外

2021-07-15 12:34:21.400 ERROR 5352 --- [           main] com.zaxxer.hikari.HikariConfig           : Failed to load driver class db_driverClassName from HikariConfig class classloader jdk.internal.loader.ClassLoaders$AppClassLoader@368239c8
2021-07-15 12:34:21.403  WARN 5352 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Unsatisfied dependency expressed through method 'dataSourceScriptDatabaseInitializer' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getDataSource' defined in class path resource [com/myapp/quartz/config/DataSourceConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'getDataSource' threw exception; nested exception is java.lang.RuntimeException: Failed to load driver class db_driverClassName in either of HikariConfig class loader or Thread context classloader
2021-07-15 12:34:21.405  INFO 5352 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2021-07-15 12:34:21.418  INFO 5352 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-07-15 12:34:21.437 ERROR 5352 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Unsatisfied dependency expressed through method 'dataSourceScriptDatabaseInitializer' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getDataSource' defined in class path resource [com/myapp/quartz/config/DataSourceConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'getDataSource' threw exception; nested exception is java.lang.RuntimeException: Failed to load driver class db_driverClassName in either of HikariConfig class loader or Thread context classloader
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.8.jar:5.3.8]
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) ~[spring-context-5.3.8.jar:5.3.8]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) ~[spring-context-5.3.8.jar:5.3.8]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.8.jar:5.3.8]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.5.2.jar:2.5.2]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-2.5.2.jar:2.5.2]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-2.5.2.jar:2.5.2]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:338) ~[spring-boot-2.5.2.jar:2.5.2]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-2.5.2.jar:2.5.2]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1332) ~[spring-boot-2.5.2.jar:2.5.2]
    at com.myapp.quartz.GatewayApplication.main(GatewayApplication.java:17) ~[classes/:na]

我尝试通过手动设置值而不是将其放入文件中,这是有效的,但是当我尝试从文件中获取属性值时,我收到了这个异常。

用户7294900

您需要从属性值中删除引号

db_driverClassName=org.postgresql.Driver
db_url=jdbc:postgresql://localhost:5432/testDB
db_username=postgres
db_userpassword=password

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

单元测试中的Spring Boot数据源

Spring Boot:数据源属性

Spring Boot配置和使用两个数据源

使用JNDI在Spring Boot中配置多个数据源

Spring Boot外部数据源bean

在属性文件中设置-通过Spring Boot加密Bcrypt数据源密码

Spring Boot 2.3数据源注入

为什么Spring Boot / Data无法自动配置多个数据源?

Spring Boot jdbc问题。无法配置数据源:未指定'url'属性,并且无法配置任何嵌入式数据源

无法配置数据源:未使用Spring Boot指定'url'属性

使用外部Tomcat 9服务器使用JNDI配置数据源:Spring Boot

Spring Boot中的TransactionManager和数据源-Spring Data

Spring Boot在以编程方式配置数据源时没有选择spring.datasource.tomcat。*?

Spring-boot_1.4.2数据源配置

具有application.properties的spring-boot数据源配置文件

在Spring Boot中创建多个数据源和架构

如何在Spring Boot + Spring Data中创建自定义数据源

Spring Boot JPA中的动态数据源

如何在Spring Boot应用程序中为远程数据库连接配置数据源

如何在独立(战争)和嵌入式Tomcat中为Spring-Boot应用程序配置数据源?

Spring Boot验证数据源连接

在Spring Boot安全性中使用authenticationProvider时如何配置数据源?

Spring Boot数据源

如何使用Spring-Boot外部化数据源配置?

选择在CF中创建数据源时Spring Boot应该使用的参数?

Spring boot:配置hsqldb数据源来持久化数据

Spring Boot 和 Spring Session:如何控制数据源

Spring Boot 数据源配置

spring boot如何自动配置特殊数据源的驱动?