繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM