SpringBoot 实现 MySQL 读写分离技术

SpringBoot 实现 MySQL 读写分离技术
复制/**   * 主从配置   *   * @author wyq   */  @Configuration  @MapperScan(basePackages = "com.wyq.mysqlreadwriteseparate.mapper",实现术 sqlSessionTemplateRef = "sqlTemplate")  public class DataSourceConfig {      /**       * 主库       */      @Bean      @ConfigurationProperties(prefix = "spring.datasource.master")      public DataSource master() {          return DruidDataSourceBuilder.create().build();      }      /**       * 从库       */      @Bean      @ConfigurationProperties(prefix = "spring.datasource.slave")      public DataSource slaver() {          return DruidDataSourceBuilder.create().build();      }      /**       * 实例化数据源路由      */      @Bean      public DataSourceRouter dynamicDB(@Qualifier("master") DataSource masterDataSource,                                        @Autowired(required = false) @Qualifier("slaver") DataSource slaveDataSource) {          DataSourceRouter dynamicDataSource = new DataSourceRouter();          Map<Object, Object>targetDataSources = new HashMap<>();          targetDataSources.put(DataSourceEnum.MASTER.getDataSourceName(), masterDataSource);          if (slaveDataSource != null) {              targetDataSources.put(DataSourceEnum.SLAVE.getDataSourceName(), slaveDataSource);          }          dynamicDataSource.setTargetDataSources(targetDataSources);          dynamicDataSource.setDefaultTargetDataSource(masterDataSource);          return dynamicDataSource;      }      /**       * 配置sessionFactory       * @param dynamicDataSource       * @return       * @throws Exception       */      @Bean      public SqlSessionFactory sessionFactory(@Qualifier("dynamicDB") DataSource dynamicDataSource) throws Exception {          SqlSessionFactoryBean bean = new SqlSessionFactoryBean();          bean.setMapperLocations(                  new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*Mapper.xml"));          bean.setDataSource(dynamicDataSource);          return bean.getObject();      }      /**       * 创建sqlTemplate       * @param sqlSessionFactory       * @return       */      @Bean      public SqlSessionTemplate sqlTemplate(@Qualifier("sessionFactory") SqlSessionFactory sqlSessionFactory) {          return new SqlSessionTemplate(sqlSessionFactory);      }      /**       * 事务配置       *       * @param dynamicDataSource       * @return       */      @Bean(name = "dataSourceTx")      public DataSourceTransactionManager dataSourceTransactionManager(@Qualifier("dynamicDB") DataSource dynamicDataSource) {          DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();          dataSourceTransactionManager.setDataSource(dynamicDataSource);          return dataSourceTransactionManager;      }  }  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.
IT科技类资讯
上一篇:解决奇迹暖暖电脑登录密码错误的方法(从忘记密码到找回密码,轻松解决登录问题)
下一篇:电脑U盘更换教程(学会轻松更换电脑U盘,让你的数据存储更安全)