![](/img/trans.png)
[英]Configure hibernate to connect to database via JNDI Datasource
[英]java spring connect to mysql database (not JNDI pool or system datasource!)
我有一个使用它的postgres db的java spring应用程序,没有问题。 但是我还有一个石英作业,它每小时运行一次,并将其他mysql DS中的数据与postgres同步。 问题是JDBC连接字符串是动态的并且正在更改,我不能仅在systemstartup等上指定它。如何优雅地做到这一点? 我的意思是拿jdbc连接字符串,连接到db并从那里检索数据? 我在那里也使用spring-data。
一种可能的解决方案是使用Spring Batch @JobScope bean,并让您的石英作业启动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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.