SpringBoot JdbcTemplate 在 application.properties 之外设置数据库凭据

问题描述 投票:0回答:1

在SpringBoot应用程序中使用JdbcTemplates时,通常我们在application.properties中设置以下两个字段,例如

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=admin

然后在我们的应用程序中@Autowire JdbcTemplate 并运行我们的查询。是否允许使用java代码而不是application.properties来配置spring.datasource.password=admin。我不想将密码放在 application.properties 中。

也许配置 DataSource bean 并设置其中的所有值。

spring-boot spring-jdbc
1个回答
0
投票

希望它适合你

@Configuration
public class DataSourceConfig {
    
    @Bean
    public DataSource getDataSource() {
        DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
        dataSourceBuilder.driverClassName("org.h2.Driver");
        dataSourceBuilder.url("jdbc:h2:mem:test");
        dataSourceBuilder.username("SA");
        dataSourceBuilder.password("");
        return dataSourceBuilder.build();
    }
}

从属性中删除此信息并写在此处。请注意,硬编码密码也不安全,代码可能会被反编译。最好从环境中读取密码

dataSourceBuilder.password(System.getEnv("MY_PASSWORD")

这个例子借自https://www.baeldung.com/spring-boot-configure-data-source-programmatic

© www.soinside.com 2019 - 2024. All rights reserved.