跟easy-cloud一起写mybatis审计组件

mybatis审计模块使用教程

项目说明

​ 原因:开发人员手动设置实体的创建者、更新者、创建时间、更新时间产生了大量的重复代码

​ 目的:减少重复代码、减少开发者设置公共字段的时间,从而优化代码结构、提高开发效率

​ 环境:mybatis、springboot、jdk1.8极其以上版本等等、数据数据类需要放在dao或者repository或者 mapper包或者子包下

 源码地址:https://github.com/dqeasycloud/easy-cloud/tree/_daiqi/easy-cloud-core-parent/easy-cloud-core-jdbc

使用须知

  1. 引入组件

    使用该组件需要导入easy-cloud-core和easy-cloud-core-jdbc

    maven引入示例

    <dependency>
        <groupId>easy.cloud.core</groupId>
        <artifactId>easy-cloud-core</artifactId>
        <optional>true</optional>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>easy.cloud.core</groupId>
        <artifactId>easy-cloud-core-jdbc</artifactId>
        <optional>true</optional>
        <version>1.0.0</version>
    </dependency>
  2. 其他需要引入的依赖见源码pom

基础教程

  1. 持久化实体关键代码(详情建EcBaseEntity)

    import org.springframework.data.annotation.CreatedBy;
    import org.springframework.data.annotation.CreatedDate;
    import org.springframework.data.annotation.LastModifiedBy;
    import org.springframework.data.annotation.LastModifiedDate;
    @CreatedDate
    private Date createDate;
    @LastModifiedDate
    private Date updateDate;
    @CreatedBy
    private Long createBy;
    @LastModifiedBy
    private Long updateBy;
  2. 配置方式

    1. 注解方式 在保存和更新的接口上添加EcAuditAnnotation注解,如:详情见源码说明

      @EcAuditAnnotation(actionType = EcActionType.SAVE, type = EcType.SAVE)
      public int save(final T obj);
      
      @EcAuditAnnotation(actionType = EcActionType.UPDATE, type = EcType.UPDATE)
      public int update(final T obj);
    2. 配置类方式 编写自己的配置类继承EcAuditConfig类,必须使用@Component等注解注入为bean

    import org.springframework.stereotype.Component;
    
    import com.easy.cloud.core.jdbc.audit.config.EcAuditConfig;
    import com.easy.cloud.core.jdbc.audit.constant.EcAuditConstant.EcActionType;
    import com.easy.cloud.core.jdbc.audit.constant.EcAuditConstant.EcType;
    import com.easy.cloud.core.jdbc.audit.pojo.EcAuditConfigDTO;
    
    @Component
    public class EcUserConfig extends EcAuditConfig{
    	static {
    		put(new EcAuditConfigDTO("save", EcActionType.SAVE, EcType.SAVE));
    		put(new EcAuditConfigDTO("saveBatch", EcActionType.SAVE_BATCH, EcType.SAVE));
    		
    		put(new EcAuditConfigDTO("update", EcActionType.UPDATE, EcType.UPDATE));
    		put(new EcAuditConfigDTO("updateBatch", EcActionType.UPDATE_BATCH, EcType.UPDATE));
    	}
    }
  3. 创建自己的AuditorAware类实现EcAuditorAware接口重写getCurrentAuditor()方法获取当前审计者

    package com.easy.cloud.core.jdbc.user.aware;
    
    import org.springframework.stereotype.Component;
    import com.easy.cloud.core.jdbc.auditor.aware.EcAuditorAware;
    
    @Component
    public class EcAuditorAwareImpl implements EcAuditorAware<Long>{
    	@Override
    	public Long getCurrentAuditor() {
    		return 2222l;
    	}
    }

    注意:1、’实现实现类需要被spring容器管理

    ​ 2、一个容器中只能有一个EcAuditorAware实现实例

通过以上3个步骤就能集成基于mybatis的审计功能了、若想自定义规则继续往下看

高级教程(定义自己的处理规则)

  1. 编写自己的审计处理类继承EcBaseAuditProcced抽象类重写EcBaseAuditProcced类中的相关方法

    public class EcMyselfAuditProcced extends EcBaseAuditProcced{
    
    }
  2. 配置方式

    1. 注解方式 需要在方法的添加一个新的注解参数proccedClass值为自己定义审计处理类的class

      @EcAuditAnnotation(actionType = EcActionType.SAVE, type = EcType.SAVE, proccedClass = EcMyselfAuditProcced.class)
      public int save(final T obj);
      
      @EcAuditAnnotation(actionType = EcActionType.UPDATE, type = EcType.UPDATE, proccedClass = EcMyselfAuditProcced.class)
      public int update(final T obj);
    2. 配置类方式 编写自己的配置类继承EcAuditConfig类,必须使用@Component等注解注入为bean

      import org.springframework.stereotype.Component;
      
      import com.easy.cloud.core.jdbc.audit.config.EcAuditConfig;
      import com.easy.cloud.core.jdbc.audit.constant.EcAuditConstant.EcActionType;
      import com.easy.cloud.core.jdbc.audit.constant.EcAuditConstant.EcType;
      import com.easy.cloud.core.jdbc.audit.pojo.EcAuditConfigDTO;
      import com.easy.cloud.core.jdbc.audit.procced.impl.EcDefaultAuditProcced;
      
      @Component
      public class EcUserConfig extends EcAuditConfig{
      	static {
      		put(new EcAuditConfigDTO("save", EcActionType.SAVE, EcType.SAVE, EcMyselfAuditProcced.class));
      		put(new EcAuditConfigDTO("saveBatch", EcActionType.SAVE_BATCH, EcType.SAVE, EcMyselfAuditProcced.class));
      		
      		put(new EcAuditConfigDTO("update", EcActionType.UPDATE, EcType.UPDATE, EcMyselfAuditProcced.class));
      		put(new EcAuditConfigDTO("updateBatch", EcActionType.UPDATE_BATCH, EcType.UPDATE, EcMyselfAuditProcced.class));
      	}
      }

    其他步骤与基础教程的步骤一致

    至此就实现了对mybatis的审计功能

快速关闭主键生成策略和审计功能

​ 在application.properties或者application.yml等主配置文件中添加ec.audit.switch=false即可关闭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值