Whoami

I am freelance developer. Currently doing more in backend, actually in Python and Java.

Navigation
 » Home
 » About Me
 » Projects
 » Github
 » XML Feed

Spring boot/Mybatis with multi DataSource.

28 Mar 2017 » java, springboot, codefights

How to use Multi dataSource in spring boot?

Solution: Talk is cheap, show you the code.

@Configuration
@MapperScan(basePackages = "com.vipabc.vqs.mapper.jr", sqlSessionFactoryRef = "jrSqlSessionFactory")
public class JrDataSourceConfig {

    @Bean
    @Primary
    @ConfigurationProperties(prefix = "vipcoder.datasource.targets.jr")
    public DataSource jrDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name="jrSqlSessionFactory")
    @Primary
    public SqlSessionFactory jrSqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(jrDataSource());
        return sessionFactory.getObject();
    }

    @Bean(name = "jrSqlSessionTemplate")
    @Primary
    public SqlSessionTemplate db1SqlSessionTemplate(SqlSessionFactory jrSqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(jrSqlSessionFactory);
    }

    @Bean(name = "jrTransactionManager")
    @Primary
    public DataSourceTransactionManager jrTransactionManager() {
        return new DataSourceTransactionManager(jrDataSource());
    }
}

Example:

  • how to use?

Multi dataSource with multi config class like above.

Done.