类 BaseMasterDatabaseConfiguration
- 所有已实现的接口:
org.springframework.beans.factory.InitializingBean
注意:BaseDatabaseConfiguration 和 DynamicDataSourceAutoConfiguration 只能同时加载一个
不使用多数据源模式时,一个服务如何配置多数据源?
1. 本类的子类的 @MapperScan(basePackages = {"top.tangyh.basic"}) 修改为 @MapperScan(basePackages = {"top.tangyh.basic.product.dao"}) 2. 修改本类的子类的 @ConfigurationProperties(prefix = "spring.datasource.druid") 为 @ConfigurationProperties(prefix = "spring.datasource.druid.master") 3. 在lamp-xxx-server层复制该类,重命名为 SlaveDatabaseAutoConfiguration (跟AuthorityDatabaseAutoConfiguration放一起) 4. 修改 DATABASE_PREFIX 为 slave (任意命名,不要跟当前的重复即可) 5. 修改 @ConfigurationProperties(prefix = "spring.datasource.druid") 为 @ConfigurationProperties(prefix = "spring.datasource.druid.slave") 6. SlaveDatabaseAutoConfiguration 中的 basePackages = {"top.tangyh.basic"}, 修改为 basePackages = {"top.tangyh.basic.order.dao"} # 这个路径根据你的情况修改 7. mysql.yml 中增加2个数据源的配置 spring.database.druid.master 和 spring.database.druid.slave 8. mysql.yml 中将 mybatis-plus: 相关的所有配置完整的复制一份为: mybatis-plus-slave: , 并修改各自的子项 mapper-locations: 进行修改 8. 复制 MybatisPlusProperties 为 MybatisPlusSlaveProperties, 并修改类上的配置为 @ConfigurationProperties(prefix = "mybatis-plus-slave") 9. SlaveDatabaseAutoConfiguration 类上面需要配置 AuthorityDatabaseAutoConfiguration 类上的一系列注解 10. SlaveDatabaseAutoConfiguration 类上面需要配置 @EnableConfigurationProperties({MybatisPlusSlaveProperties.class}) , 构造器第一个参数也改成 MybatisPlusSlaveProperties
完成上述修改后, 位于top.tangyh.basic.product.dao 包下的dao 将操作 master 库, top.tangyh.basic.order.dao中的dao 将操作slave库
- 作者:
- zuihou
-
字段概要
字段从类继承的字段 top.tangyh.basic.database.datasource.BaseDatabaseConfiguration
applicationContext, configurationCustomizers, databaseIdProvider, databaseProperties, interceptors, languageDrivers, mybatisPlusPropertiesCustomizers, properties, resourceLoader, typeHandlers -
构造器概要
构造器构造器说明BaseMasterDatabaseConfiguration(com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties properties, DatabaseProperties databaseProperties, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.plugin.Interceptor[]> interceptorsProvider, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.type.TypeHandler[]> typeHandlersProvider, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.scripting.LanguageDriver[]> languageDriversProvider, org.springframework.core.io.ResourceLoader resourceLoader, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.mapping.DatabaseIdProvider> databaseIdProvider, org.springframework.beans.factory.ObjectProvider<List<com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer>> configurationCustomizersProvider, org.springframework.beans.factory.ObjectProvider<List<com.baomidou.mybatisplus.autoconfigure.MybatisPlusPropertiesCustomizer>> mybatisPlusPropertiesCustomizerProvider, org.springframework.context.ApplicationContext applicationContext) -
方法概要
修饰符和类型方法说明dataSource(DataSource dataSource) 数据源信息org.springframework.jdbc.datasource.DataSourceTransactionManagerdsTransactionManager(DataSource dataSource) 数据源事务管理器org.apache.ibatis.session.SqlSessionFactorygetSqlSessionFactory(DataSource dataSource) mybatis Sql Session 工厂org.mybatis.spring.SqlSessionTemplategetSqlSessionTemplate(org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory) 从类继承的方法 top.tangyh.basic.database.datasource.BaseDatabaseConfiguration
afterPropertiesSet, applyConfiguration, sqlSessionFactory
-
字段详细资料
-
DATABASE_PREFIX
每个数据源配置不同即可- 另请参阅:
-
-
构造器详细资料
-
BaseMasterDatabaseConfiguration
public BaseMasterDatabaseConfiguration(com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties properties, DatabaseProperties databaseProperties, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.plugin.Interceptor[]> interceptorsProvider, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.type.TypeHandler[]> typeHandlersProvider, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.scripting.LanguageDriver[]> languageDriversProvider, org.springframework.core.io.ResourceLoader resourceLoader, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.mapping.DatabaseIdProvider> databaseIdProvider, org.springframework.beans.factory.ObjectProvider<List<com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer>> configurationCustomizersProvider, org.springframework.beans.factory.ObjectProvider<List<com.baomidou.mybatisplus.autoconfigure.MybatisPlusPropertiesCustomizer>> mybatisPlusPropertiesCustomizerProvider, org.springframework.context.ApplicationContext applicationContext)
-
-
方法详细资料
-
getSqlSessionTemplate
@Bean("masterSqlSessionTemplate") public org.mybatis.spring.SqlSessionTemplate getSqlSessionTemplate(@Qualifier("masterSqlSessionFactory") org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory) -
druidDataSource
数据源信息- 返回:
- javax.sql.DataSource Druid数据源
-
dataSource
@Primary @Bean(name="masterDataSource") public DataSource dataSource(@Qualifier("masterDruidDataSource") DataSource dataSource) -
getSqlSessionFactory
@Bean("masterSqlSessionFactory") @Primary public org.apache.ibatis.session.SqlSessionFactory getSqlSessionFactory(@Qualifier("masterDataSource") DataSource dataSource) throws Exception mybatis Sql Session 工厂- 返回:
- sql链接工厂
- 抛出:
Exception- 异常
-
dsTransactionManager
@Bean(name="masterTransactionManager") @Primary public org.springframework.jdbc.datasource.DataSourceTransactionManager dsTransactionManager(@Qualifier("masterDataSource") DataSource dataSource) 数据源事务管理器- 返回:
- 数据源事务管理器
-