Mybatis +Spring Boot 配置多个数据源注意事项

步骤

1、在springboot的启动类的@SpringBootApplication中去除默认的DataSourceAutoConfiguration.class数据源配置类

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})


2、编写自定义的DataSourceConfig类

@Configuration
public class DataSourceConfig {
	
    @Bean(name = "DataSourceA")
    @ConfigurationProperties(prefix = "spring.datasourcea") // application.properteis中对应属性的前缀
    public DataSource dataSource1() {
        return DataSourceBuilder.create().build();
    }
	
    @Bean(name = "DataSourceB")
    @ConfigurationProperties(prefix = "spring.datasourceb") // application.properteis中对应属性的前缀
    public DataSource dataSource2() {
        return DataSourceBuilder.create().build();
    }
}

3、编写mybatis配置类

@Configuration
@MapperScan(basePackages = "com.mybatis.idao",sqlSessionFactoryRef = "sqlSessionFactory1")
public class MybatisDbAConfig {
	
	@Autowired
    //表示注入哪个类
	@Qualifier("DataSourceA")
	private DataSource dataSource;
	
    @Bean
    public SqlSessionFactory sqlSessionFactory1() throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        factoryBean.setMapperLocations(resolver.getResources("classpath:mybatis_mapper/*.xml"));
        return factoryBean.getObject();

    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplate1() throws Exception {
        SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory1()); // 使用上面配置的Factory
        return template;
    }
}
其他数据源配置相类似


注意事项

1、配置多个数据源的时候,注意多个数据源的的Interface和*mapper.xml应该在不同的包或文件夹下,这样使用@MapperScan进行扫描的时候会不出现,not to bound的错误。


猜你喜欢

转载自blog.csdn.net/Danny_tll/article/details/79997876
今日推荐