天天看點

SpringBoot內建mybatis多資料源

    @Configuration

    @MapperScan(basePackages = {"com.aaa.mapper"},sqlSessionFactoryRef  = "ADataSqlSessionFactory")

   public class A {

         @Bean(name = "ADataSource")

    public DataSource dataSource() {

        try {

            DruidDataSource druidDataSource = new DruidDataSource();

            druidDataSource.setDriverClassName(drivername);

            druidDataSource.setUrl(url);

            druidDataSource.setUsername(username);

            druidDataSource.setPassword(password);

            druidDataSource.setValidationQuery(validationQuery);

            initDataSource(druidDataSource);

            return druidDataSource;

        } catch (Exception e) {

            logger.error("ADataSource資料源初始化異常",e);

            return null;

        }

    }

@Bean(name = "ADataSqlSessionFactory")

    public SqlSessionFactory sqlSessionFactory(@Qualifier("ADataSource") DataSource dataSource)

            throws Exception {

        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();

        bean.setDataSource(dataSource);

        bean.setMapperLocations(

                new PathMatchingResourcePatternResolver().getResources("classpath:mapper/a/*.xml"));

        return bean.getObject();

    }

    @Bean(name = "ADataTransactionManager")

    public DataSourceTransactionManager transactionManager(@Qualifier("ADataSource") DataSource dataSource) {

        DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager(dataSource);

        return new DataSourceTransactionManager(dataSource);

    }

  }

繼續閱讀