java - 在 Spring Boot 中以编程方式配置 DataSource

标签 java spring datasource spring-boot credential-providers

使用 Spring Boot,我可以使用以下内容实例化 JdbcTemplate:

代码:

@Autowired
private JdbcTemplate jdbcTemplate;

属性:

spring.datasource.url=jdbc:postgresql://my_url:my_port/my_other_stuff
spring.datasource.username=my_user_name
spring.datasource.password=my_password
spring.datasource.driver-class-name=org.postgresql.Driver

这会创建一个DataSource类:org.apache.tomcat.jdbc.pool.DataSource

如何以编程方式设置 DataSource 用户名/密码?

我们的政策是不以纯文本形式存储凭据,我必须在我工作的地方使用特定的凭据提供程序。

最佳答案

如果您使用的是 jdbc 启动器,则可以使用 DataSourceBuilder。此外,为了覆盖默认的自动配置 bean,您需要将 bean 标记为 @Primary

在我的例子中,我有以 datasource.postgres 前缀开头的属性。

例如

@ConfigurationProperties(prefix = "datasource.postgres")
@Bean
@Primary
public DataSource dataSource() {
    return DataSourceBuilder
        .create()
        .build();
}

如果对你来说不可行,那么你可以使用

@Bean
@Primary
public DataSource dataSource() {
    return DataSourceBuilder
        .create()
        .username("")
        .password("")
        .url("")
        .driverClassName("")
        .build();
}

关于java - 在 Spring Boot 中以编程方式配置 DataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28821521/

相关文章:

spring - RESTful Web 服务对于银行应用程序来说是否足够安全?

devexpress - 不支持将数据直接绑定(bind)到存储查询(DbSet、DbQuery、DbSqlQuery) Entity Framework 5

java - 如果将单线程调度到多个内核对内存可见性的影响

java - 是否可以编写和加载您自己的核心 Java 类版本?

java - 什么是 NullPointerException,我该如何解决?

Spring:Azure 功能管理器功能切换 Microsoft.Targeting bean 未找到

java - 访问 JSP 中的对象列表时出现 NumberFormatException

asp.net - 在asp.net UserControl 中的控件上设置DataSource?

mvvm - 剑道用户界面 : binding view model to datasource change

java - 使用 Criteria 从数据库中选择特定字段?