springboot,mysql多数据源-mybaits
    		       		warning:
    		            这篇文章距离上次修改已过424天,其中的内容可能已经有所变动。
    		        
        		                
                在Spring Boot中配置多数据源通常涉及以下几个步骤:
- 配置数据源属性。
 - 创建数据源实例。
 - 配置SqlSessionFactory和事务管理器。
 - 指定Mapper接口所使用的SqlSessionFactory。
 
以下是一个简化的示例,展示了如何在Spring Boot应用程序中配置MyBatis多数据源:
@Configuration
public class DataSourceConfig {
 
    @Bean
    @Primary
    @ConfigurationProperties(prefix = "spring.datasource.primary")
    public DataSource primaryDataSource() {
        return DataSourceBuilder.create().build();
    }
 
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.secondary")
    public DataSource secondaryDataSource() {
        return DataSourceBuilder.create().build();
    }
 
    @Bean
    public SqlSessionFactory sqlSessionFactoryPrimary(DataSource primaryDataSource) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(primaryDataSource);
        return sessionFactory.getObject();
    }
 
    @Bean
    public SqlSessionFactory sqlSessionFactorySecondary(DataSource secondaryDataSource) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(secondaryDataSource);
        return sessionFactory.getObject();
    }
 
    @Bean
    @Primary
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactoryPrimary) {
        return new SqlSessionTemplate(sqlSessionFactoryPrimary);
    }
 
    @Bean
    public SqlSessionTemplate sqlSessionTemplateSecondary(SqlSessionFactory sqlSessionFactorySecondary) {
        return new SqlSessionTemplate(sqlSessionFactorySecondary);
    }
}在上述配置中,我们定义了两个数据源primaryDataSource和secondaryDataSource,并为每个数据源创建了对应的SqlSessionFactory和SqlSessionTemplate。通过@Primary注解指定了主数据源。
在application.properties或application.yml中,你需要配置相应的数据源属性,例如:
spring.datasource.primary.url=jdbc:mysql://localhost:3306/primary_db
spring.datasource.primary.username=primary_user
spring.datasource.primary.password=primary_pass
 
spring.datasource.secondary.url=jdbc:mysql://localhost:3306/secondary_db
spring.datasource.secondary.username=secondary_user
spring.datasourc           
评论已关闭