当前位置:首页 >人工智能 >SpringBoot 实现 MySQL 读写分离技术 正文

SpringBoot 实现 MySQL 读写分离技术

来源:益强资讯优选   作者:IT科技   时间:2025-11-05 03:20:08
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.

标签:

责任编辑:数据库