From 5ca038d888922e93bf45c7bd37f3c6dce849dcff Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期五, 24 十二月 2021 11:36:02 +0800 Subject: [PATCH] update 调整监控依赖 从 common 迁移到 framework --- ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java | 110 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 98 insertions(+), 12 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java index 5c56edd..5daaa9a 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java @@ -1,38 +1,124 @@ package com.ruoyi.framework.config; -import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; -import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; -import com.baomidou.mybatisplus.extension.plugins.SqlExplainInterceptor; +import cn.hutool.core.net.NetUtil; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator; +import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; +import com.baomidou.mybatisplus.core.injector.AbstractMethod; +import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; +import com.baomidou.mybatisplus.core.injector.ISqlInjector; +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import com.ruoyi.common.core.mybatisplus.methods.InsertAll; +import com.ruoyi.framework.handler.CreateAndUpdateMetaObjectHandler; +import com.ruoyi.framework.interceptor.PlusDataPermissionInterceptor; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; +import java.util.List; + +/** + * mybatis-plus閰嶇疆绫�(涓嬫柟娉ㄩ噴鏈夋彃浠朵粙缁�) + * + * @author Lion Li + */ @EnableTransactionManagement(proxyTargetClass = true) @Configuration +@MapperScan("${mybatis-plus.mapperPackage}") public class MybatisPlusConfig { + + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + // 鏁版嵁鏉冮檺澶勭悊 + interceptor.addInnerInterceptor(dataPermissionInterceptor()); + // 鍒嗛〉鎻掍欢 + interceptor.addInnerInterceptor(paginationInnerInterceptor()); + // 涔愯閿佹彃浠� + interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor()); + return interceptor; + } + + /** + * 鏁版嵁鏉冮檺鎷︽埅鍣� + */ + public PlusDataPermissionInterceptor dataPermissionInterceptor() { + return new PlusDataPermissionInterceptor(); + } /** * 鍒嗛〉鎻掍欢锛岃嚜鍔ㄨ瘑鍒暟鎹簱绫诲瀷 */ - @Bean - public PaginationInterceptor paginationInterceptor() { - return new PaginationInterceptor(); + public PaginationInnerInterceptor paginationInnerInterceptor() { + PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); + // 璁剧疆鏈�澶у崟椤甸檺鍒舵暟閲忥紝榛樿 500 鏉★紝-1 涓嶅彈闄愬埗 + paginationInnerInterceptor.setMaxLimit(-1L); + // 鍒嗛〉鍚堢悊鍖� + paginationInnerInterceptor.setOverflow(true); + return paginationInnerInterceptor; } /** * 涔愯閿佹彃浠� */ - @Bean - public OptimisticLockerInterceptor optimisticLockerInterceptor() { - return new OptimisticLockerInterceptor(); + public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() { + return new OptimisticLockerInnerInterceptor(); } /** - * 濡傛灉鏄鍏ㄨ〃鐨勫垹闄ゆ垨鏇存柊鎿嶄綔锛屽氨浼氱粓姝㈣鎿嶄綔 + * 鍏冨璞″瓧娈靛~鍏呮帶鍒跺櫒 */ @Bean - public SqlExplainInterceptor sqlExplainInterceptor() { - return new SqlExplainInterceptor(); + public MetaObjectHandler metaObjectHandler() { + return new CreateAndUpdateMetaObjectHandler(); } + /** + * sql娉ㄥ叆鍣ㄩ厤缃� + */ + @Bean + public ISqlInjector sqlInjector() { + return new DefaultSqlInjector() { + @Override + public List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) { + List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo); + methodList.add(new InsertAll()); + return methodList; + } + }; + } + + /** + * 浣跨敤缃戝崱淇℃伅缁戝畾闆姳鐢熸垚鍣� + * 闃叉闆嗙兢闆姳ID閲嶅 + */ + @Bean + public IdentifierGenerator idGenerator() { + return new DefaultIdentifierGenerator(NetUtil.getLocalhost()); + } + + /** + * PaginationInnerInterceptor 鍒嗛〉鎻掍欢锛岃嚜鍔ㄨ瘑鍒暟鎹簱绫诲瀷 + * https://baomidou.com/pages/97710a/ + * OptimisticLockerInnerInterceptor 涔愯閿佹彃浠� + * https://baomidou.com/pages/0d93c0/ + * MetaObjectHandler 鍏冨璞″瓧娈靛~鍏呮帶鍒跺櫒 + * https://baomidou.com/pages/4c6bcf/ + * ISqlInjector sql娉ㄥ叆鍣� + * https://baomidou.com/pages/42ea4a/ + * BlockAttackInnerInterceptor 濡傛灉鏄鍏ㄨ〃鐨勫垹闄ゆ垨鏇存柊鎿嶄綔锛屽氨浼氱粓姝㈣鎿嶄綔 + * https://baomidou.com/pages/f9a237/ + * IllegalSQLInnerInterceptor sql鎬ц兘瑙勮寖鎻掍欢(鍨冨溇SQL鎷︽埅) + * IdentifierGenerator 鑷畾涔変富閿瓥鐣� + * https://baomidou.com/pages/568eb2/ + * TenantLineInnerInterceptor 澶氱鎴锋彃浠� + * https://baomidou.com/pages/aef2f2/ + * DynamicTableNameInnerInterceptor 鍔ㄦ�佽〃鍚嶆彃浠� + * https://baomidou.com/pages/2a45ff/ + */ + } -- Gitblit v1.9.3