关于mybatis多数据源分场景使用

场景:多数据源场景,是否有必要动态数据源

1.第一种: 多读多写
2.第二种: 读写分离

  • 第一种情况.
    OrderMapper

    UserMapper
    由于业务原因订单和用户不在一个库,订单完成需要同时对用户和余额都做想要的操作,我称成为多读多写.
开发,上来二话不说,动态数据源(aop)搞起来,其实有没有发现,没有必要动态数据源一样可以解决这个问题. 仔细看配置
    <bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.yzx.sms.mapper"/>
        <property name="sqlSessionFactoryBeanName" value="smsSqlSessionFactory"/>
    </bean>


    <bean id="smsSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="sms_dataSource"/>
        <property name="configLocation" value="classpath:spring/mybatis-config.xml"/>
        <property name="mapperLocations" value="classpath:mapper/sms/*.xml"/>
    </bean>

发现没,每一个Mapper接口已经指定了数据源,为啥要动态切换?同一个mapper本就只有一个数据源,其实没有必要.增加复杂性.

  • 第二种情况.

这种需要动态数据源,因为同一个Mapper对应多个数据源,此种场景才有必要

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容