在独立的Spring Boot应用程序中配置DataSource和JdbcTemplate

时间:2018-08-18 05:22:15

标签: spring-boot spring-data datasource spring-jdbc jdbctemplate

我正在编写一个独立的Spring Boot应用,该应用将从SQLServer提取数据并将其插入MySQL数据库。

我认为我正确构建了该应用程序,并相信自己的工作方向正确。但是,我无法弄清楚:

  1. 如何设置/配置DataSource和JdbcTemplate。
  2. 然后如何设置两个不同的 DataSource和JdbcTemplate;一个用于SQLServer,一个用于MySQL。

Here是我的Git回购链接,可用于查看我的项目结构和初始代码。

有人可以帮助我如何设置 DataSource JdbcTemplate 吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我希望您知道如何在这样的属性文件中为每个数据库提供2组属性。

# Oracle DB - "foo"
spring.datasource.hikari.jdbcUrl=jdbc:oracle:thin:@//db-server-foo:1521/FOO
spring.datasource.hikari.username=fooadmin
spring.datasource.hikari.password=foo123
spring.datasource.hikari.driverClassName=oracle.jdbc.OracleDriver
# Ignite DB - "bar"
bar.datasource.hikari.url=jdbc:postgresql://db-server-bar:5432/bar
bar.datasource.hikari.username=baradmin
bar.datasource.hikari.password=bar123
bar.datasource.driver-class-name=org.postgresql.Driver

然后像这样配置数据源和jdbc模板。

 /**
 * Auto-configured DataSource
 */
@ConfigurationProperties(prefix = "spring.datasource.hikari")
@Bean
@Primary
public DataSource dataSource() {
    return DataSourceBuilder.create().build();
}

/**
 * New Data source declared to connect to the Ignite in-memory Cache database.
 *
 * @return instance of DriverManagerDataSource
 */
@ConfigurationProperties(prefix = "bar.datasource.hikari")
@Bean
public DataSource igniteDataSource() {
    return DataSourceBuilder.create().build();
}

/**
 * Initialize the jdbc template to connect to ignite datasource.
 *
 * @return instance of JdbcTemplate to connect ot <code>igniteDataSource()</code>
 */
@Bean
@Primary
public JdbcTemplate igniteTemplate() {
    return new JdbcTemplate(igniteDataSource());
}

/**
 * Initialize the jdbc template to connect to the Oracle database.
 *
 * @return instance of JdbcTemplate to connect ot <code>dataSource()</code>
 */
@Bean
public JdbcTemplate dbjdbcTemplate() {
    return new JdbcTemplate(dataSource());
}