当前位置: 首页 > 知识库问答 >
问题:

使用sping-boot连接到sping-批处理和应用程序数据库

柯耀
2023-03-14

Spring batch有自己的数据库模式
我的应用程序有自己的数据库模式。

我希望将这些表分离到不同的数据库中,这样spring批处理表就不在我的应用程序数据库中。

默认情况下,spring boot只支持连接到单个数据库。如何配置它,使所有与spring批处理相关的操作都进入spring批处理数据库,而我自己的所有代码都进入我的应用程序数据库?

我使用的是最新的Spring启动1.2.2。

共有1个答案

汪泓
2023-03-14

我就是这样做的。

正在申请中。属性

### Database Details
datasource.app.driverClassName=oracle.jdbc.driver.OracleDriver
datasource.app.url=jdbc:oracle:thin:@//localhost:1521/xe
datasource.app.username=YOUR_APP_DB_USERNAME 
datasource.app.password=YOUR_PASSWORD 

datasource.batch.driverClassName=oracle.jdbc.driver.OracleDriver
datasource.batch.url=jdbc:oracle:thin:@//localhost:1521/xe
datasource.batch.username=YOUR_BATCH_DB_USERNAME 
datasource.batch.password=YOUR_PASSWORD 

@Configuration类中添加以下bean

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

@Bean
@ConfigurationProperties(prefix = "datasource.batch")
public DataSource batchDataSource() {
    return DataSourceBuilder.create().build();
}

@Bean
public JobLauncher jobLauncher() throws Exception {
    SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
    jobLauncher.setJobRepository(jobRepository());
    return jobLauncher;
}

@Bean
public JobRepository jobRepository() throws Exception {

    DataSourceTransactionManager batchTransactionManager = new DataSourceTransactionManager();
    batchTransactionManager.setDataSource(batchDataSource());

    JobRepositoryFactoryBean jobRepositoryFactoryBean = new JobRepositoryFactoryBean();
    jobRepositoryFactoryBean.setTransactionManager(batchTransactionManager);
    jobRepositoryFactoryBean.setDatabaseType("ORACLE");
    jobRepositoryFactoryBean.setIsolationLevelForCreate("ISOLATION_DEFAULT");
    jobRepositoryFactoryBean.setDataSource(batchDataSource());
    jobRepositoryFactoryBean.afterPropertiesSet();
    return jobRepositoryFactoryBean.getObject();
}
 类似资料:
  • 我正在构建一个小型的概念验证Spring Boot应用程序,它应该连接到一个Neo4j实例,并在几个不同的节点上执行一些基本操作。如果我将主应用程序类连接到使用以下代码创建嵌入式Neo4j服务,那么一切都可以正常工作。(这是基于工作示例https://spring.io/guides/gs/accessing-neo4j-data-rest/) 这是我能找到的唯一一个从spring boot连接到

  • 我有一个5列的表,我想用“Like”模式找出第1列、第2列和第3列之间的重叠。 修剪(列1)修剪(列2)修剪(列3)喜欢%搜索% 有没有什么捷径可以在不使用本机查询的情况下使用sping-data-jpa来实现这一点? 谢谢

  • 问题内容: 我正在研究将由学校使用的应用程序。每所学校将建立自己的数据库。每个学校都会为应用程序提供自己的“设置”文件。设置文件将包含创建设置文件的特定学校的数据库URL。这样一来,使用该应用程序的学生如果想连接到其他数据库,就只能加载其他设置文件。 我的问题是,如何保护用于连接数据库的用户名和密码?因此,只有应用程序具有对数据库的读写访问权限。应用程序仅具有该特定学校的读写权限吗? 如果您需要更

  • 问题内容: 我遇到以下问题:当我尝试使用外部IP地址(PC的IP而不是本地IP的createTcpServer =在cmd.exe中运行ipconfig后我们看到的输出)时,发生以下错误: 服务器错误:异常打开端口“ 9092”(端口可能正在使用),原因:“ java.net.BindException:无法分配请求的地址:JVM_Bind” [90061-169] 但是,该端口未使用。我已经使用

  • 在下面您会发现错误 2019-03-15 10:38:53.865警告1708--[main]O.H.E.J.E.I.JDBCEnvironmentInitiator:HHH000342:无法获取查询元数据的连接:服务器时区值“Paris,Madrid”无法识别或表示多个时区。如果要利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更指定的时区值。2

  • 我们正在启动一个新项目,我们正在考虑使用spring hateoas/超媒体。HAL浏览器看起来也很有趣,所以我们想看看。 然而,HAL浏览器似乎与spring data rest捆绑在一起,我们不想使用它(出于不同的原因)。 至少我们不想将所有存储库自动公开为rest资源,但在这样做时,除了使用spring hateoas定义链接外,我们还需要明确定义HAL浏览器的链接。 当不自动公开存储库时,