类 BaseMybatisConfiguration

java.lang.Object
top.tangyh.basic.database.config.BaseMybatisConfiguration

public abstract class BaseMybatisConfiguration extends Object
Mybatis 常用重用拦截器,lamp.database.multiTenantType=任意模式 都需要实例出来

拦截器执行一定是: WriteInterceptor > DataScopeInterceptor > PaginationInterceptor

作者:
zuihou
  • 字段详细资料

  • 构造器详细资料

    • BaseMybatisConfiguration

      public BaseMybatisConfiguration(DatabaseProperties databaseProperties)
  • 方法详细资料

    • mybatisPlusInterceptor

      @Bean @Order(5) @ConditionalOnMissingBean public com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor mybatisPlusInterceptor()
      新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)

      注意: 如果内部插件都是使用,需要注意顺序关系,建议使用如下顺序 多租户插件,动态表名插件 分页插件,乐观锁插件 sql性能规范插件,防止全表更新与删除插件 总结: 对sql进行单次改造的优先放入,不对sql进行改造的最后放入

      参考: https://mybatis.plus/guide/interceptor.html#%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F-%E4%BB%A5%E5%88%86%E9%A1%B5%E6%8F%92%E4%BB%B6%E4%B8%BE%E4%BE%8B

    • getDatabaseIdProvider

      @Bean public org.apache.ibatis.mapping.DatabaseIdProvider getDatabaseIdProvider()
      数据库配置
      返回:
      配置
    • getPaginationAfterInnerInterceptor

      protected List<com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor> getPaginationAfterInnerInterceptor()
      分页拦截器之后的插件
      返回:
      分页拦截器之后的插件
    • getPaginationBeforeInnerInterceptor

      protected List<com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor> getPaginationBeforeInnerInterceptor()
      分页拦截器之前的插件
      返回:
      分页拦截器之前的插件
    • getMyMetaObjectHandler

      @Bean("myMetaObjectHandler") @ConditionalOnMissingBean public com.baomidou.mybatisplus.core.handlers.MetaObjectHandler getMyMetaObjectHandler()
      Mybatis Plus 注入器
      返回:
      注入器
    • disposableWorkerIdAssigner

      @Bean @ConditionalOnMissingBean @ConditionalOnExpression("\'DEFAULT\'.equals(\'${lamp.database.id-type:DEFAULT}\') || \'CACHE\'.equals(\'${lamp.database.id-type:DEFAULT}\')") public DisposableWorkerIdAssigner disposableWorkerIdAssigner(WorkerNodeDao workerNodeDao)
    • getDefaultUidGenerator

      @Bean @ConditionalOnMissingBean @ConditionalOnProperty(prefix="lamp.database", name="id-type", havingValue="DEFAULT", matchIfMissing=true) public UidGenerator getDefaultUidGenerator(DisposableWorkerIdAssigner disposableWorkerIdAssigner)
      lamp.database.id-type = DEFAULT 或 lamp.database.id-type 未设置时启用。
    • getCacheUidGenerator

      @Bean @ConditionalOnMissingBean @ConditionalOnProperty(prefix="lamp.database", name="id-type", havingValue="CACHE") public UidGenerator getCacheUidGenerator(DisposableWorkerIdAssigner disposableWorkerIdAssigner)
      lamp.database.id-type = CACHE 时启用。
    • getHuToolUidGenerator

      @Bean @ConditionalOnMissingBean @ConditionalOnProperty(prefix="lamp.database", name="id-type", havingValue="HU_TOOL") public UidGenerator getHuToolUidGenerator()
      lamp.database.id-type = HU_TOOL 时启用。
    • getLeftLikeTypeHandler

      @Bean public LeftLikeTypeHandler getLeftLikeTypeHandler()
      Mybatis 自定义的类型处理器: 处理XML中 #{name,typeHandler=leftLike} 类型的参数 用于左模糊查询时使用

      eg: and name like #{name,typeHandler=leftLike}

      返回:
      左模糊处理器
    • getRightLikeTypeHandler

      @Bean public RightLikeTypeHandler getRightLikeTypeHandler()
      Mybatis 自定义的类型处理器: 处理XML中 #{name,typeHandler=rightLike} 类型的参数 用于右模糊查询时使用

      eg: and name like #{name,typeHandler=rightLike}

      返回:
      右模糊处理器
    • getFullLikeTypeHandler

      @Bean public FullLikeTypeHandler getFullLikeTypeHandler()
      Mybatis 自定义的类型处理器: 处理XML中 #{name,typeHandler=fullLike} 类型的参数 用于全模糊查询时使用

      eg: and name like #{name,typeHandler=fullLike}

      返回:
      全模糊处理器
    • getMySqlInjector

      @Bean @ConditionalOnMissingBean public LampSqlInjector getMySqlInjector()