gpt4 book ai didi

java spring 连接到 mysql 数据库(不是 JNDI 池或系统数据源!)

转载 作者:行者123 更新时间:2023-11-29 10:51:51 24 4
gpt4 key购买 nike

我有一个java spring应用程序,它使用它的postgres db,这没有问题。而且我还有一个每小时运行一次的quartz 作业,并将来自其他 mysql DS 的数据与 postgres 同步。问题是 JDBC 连接字符串是动态的并且正在更改,我不能只在系统启动等上指定它。如何优雅地做到这一点?我的意思是采用 jdbc 连接字符串,连接到数据库并从那里检索数据?我也在那里使用 spring-data。

最佳答案

一种可能的解决方案是使用 Spring Batch @JobScope beans 并让您的quartz作业启动 Spring Batch 作业。

您可以将数据源配置为具有@JobScope,这将使 spring 在每次执行作业时创建该数据源。然后,您可以使用作业参数或其他变量来创建所需的特定数据源。下面是创建这样的数据源的配置类的示例...

@Configuration
public class JobDatabaseConfiguration {

@Bean
@JobScope
public DataSource jobDataSource() throws IOException {

// set these from job parameters...
String jdbcUrl = "<your jdbc url>";
String driver = "<your driver>";
String user = "user";
String password = "password";

return DataSourceBuilder.create()
.driverClassName(driver)
.url(jdbcUrl)
.username(user)
.password(password)
build();
}
}

关于java spring 连接到 mysql 数据库(不是 JNDI 池或系统数据源!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43594812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com