From 1b752c35cc0c7f51922351d5bcca88a043002ae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 10:40:57 +0800 Subject: [PATCH 01/15] =?UTF-8?q?update=20=E4=BD=BF=E7=94=A8=20Cglib=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84=20BeanCopyUtils=20=E6=80=A7=E8=83=BD?= =?UTF-8?q?=E4=BC=98=E5=BC=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/mybatisplus/core/IServicePlus.java | 43 ++------- .../mybatisplus/core/ServicePlusImpl.java | 25 +++-- .../com/ruoyi/common/utils/BeanCopyUtils.java | 95 ++++++++++++++----- 3 files changed, 91 insertions(+), 72 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/IServicePlus.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/IServicePlus.java index 815791bf0..6b373ffcb 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/IServicePlus.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/IServicePlus.java @@ -1,6 +1,5 @@ package com.ruoyi.common.core.mybatisplus.core; -import cn.hutool.core.bean.copier.CopyOptions; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.IService; @@ -23,14 +22,9 @@ public interface IServicePlus extends IService { /** * @param id 主键id - * @param copyOptions copy条件 * @return V对象 */ - V getVoById(Serializable id, CopyOptions copyOptions); - - default V getVoById(Serializable id) { - return getVoById(id, new CopyOptions()); - } + V getVoById(Serializable id); /** * @param convertor 自定义转换器 @@ -41,14 +35,9 @@ public interface IServicePlus extends IService { /** * @param idList id列表 - * @param copyOptions copy条件 * @return V对象 */ - List listVoByIds(Collection idList, CopyOptions copyOptions); - - default List listVoByIds(Collection idList) { - return listVoByIds(idList, new CopyOptions()); - } + List listVoByIds(Collection idList); /** * @param convertor 自定义转换器 @@ -64,14 +53,9 @@ public interface IServicePlus extends IService { /** * @param columnMap 表字段 map 对象 - * @param copyOptions copy条件 * @return V对象 */ - List listVoByMap(Map columnMap, CopyOptions copyOptions); - - default List listVoByMap(Map columnMap) { - return listVoByMap(columnMap, new CopyOptions()); - } + List listVoByMap(Map columnMap); /** * @param convertor 自定义转换器 @@ -87,14 +71,9 @@ public interface IServicePlus extends IService { /** * @param queryWrapper 查询条件 - * @param copyOptions copy条件 * @return V对象 */ - V getVoOne(Wrapper queryWrapper, CopyOptions copyOptions); - - default V getVoOne(Wrapper queryWrapper) { - return getVoOne(queryWrapper, new CopyOptions()); - } + V getVoOne(Wrapper queryWrapper); /** * @param convertor 自定义转换器 @@ -105,14 +84,9 @@ public interface IServicePlus extends IService { /** * @param queryWrapper 查询条件 - * @param copyOptions copy条件 * @return V对象 */ - List listVo(Wrapper queryWrapper, CopyOptions copyOptions); - - default List listVo(Wrapper queryWrapper) { - return listVo(queryWrapper, new CopyOptions()); - } + List listVo(Wrapper queryWrapper); /** * @param convertor 自定义转换器 @@ -139,14 +113,9 @@ public interface IServicePlus extends IService { /** * @param page 分页对象 * @param queryWrapper 查询条件 - * @param copyOptions copy条件 * @return V对象 */ - PagePlus pageVo(PagePlus page, Wrapper queryWrapper, CopyOptions copyOptions); - - default PagePlus pageVo(PagePlus page, Wrapper queryWrapper) { - return pageVo(page, queryWrapper, new CopyOptions()); - } + PagePlus pageVo(PagePlus page, Wrapper queryWrapper); /** * @param convertor 自定义转换器 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java index e9c1f191e..4de5b326d 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java @@ -1,6 +1,5 @@ package com.ruoyi.common.core.mybatisplus.core; -import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; @@ -165,9 +164,9 @@ public class ServicePlusImpl, T, V> extends ServiceI * @param id 主键ID */ @Override - public V getVoById(Serializable id, CopyOptions copyOptions) { + public V getVoById(Serializable id) { T t = getBaseMapper().selectById(id); - return BeanCopyUtils.oneCopy(t, copyOptions, voClass); + return BeanCopyUtils.copy(t, voClass); } /** @@ -176,12 +175,12 @@ public class ServicePlusImpl, T, V> extends ServiceI * @param idList 主键ID列表 */ @Override - public List listVoByIds(Collection idList, CopyOptions copyOptions) { + public List listVoByIds(Collection idList) { List list = getBaseMapper().selectBatchIds(idList); if (list == null) { return null; } - return BeanCopyUtils.listCopy(list, copyOptions, voClass); + return BeanCopyUtils.copyList(list, voClass); } /** @@ -190,12 +189,12 @@ public class ServicePlusImpl, T, V> extends ServiceI * @param columnMap 表字段 map 对象 */ @Override - public List listVoByMap(Map columnMap, CopyOptions copyOptions) { + public List listVoByMap(Map columnMap) { List list = getBaseMapper().selectByMap(columnMap); if (list == null) { return null; } - return BeanCopyUtils.listCopy(list, copyOptions, voClass); + return BeanCopyUtils.copyList(list, voClass); } /** @@ -205,9 +204,9 @@ public class ServicePlusImpl, T, V> extends ServiceI * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ @Override - public V getVoOne(Wrapper queryWrapper, CopyOptions copyOptions) { + public V getVoOne(Wrapper queryWrapper) { T t = getOne(queryWrapper, true); - return BeanCopyUtils.oneCopy(t, copyOptions, voClass); + return BeanCopyUtils.copy(t, voClass); } /** @@ -216,12 +215,12 @@ public class ServicePlusImpl, T, V> extends ServiceI * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ @Override - public List listVo(Wrapper queryWrapper, CopyOptions copyOptions) { + public List listVo(Wrapper queryWrapper) { List list = getBaseMapper().selectList(queryWrapper); if (list == null) { return null; } - return BeanCopyUtils.listCopy(list, copyOptions, voClass); + return BeanCopyUtils.copyList(list, voClass); } /** @@ -231,9 +230,9 @@ public class ServicePlusImpl, T, V> extends ServiceI * @param queryWrapper 实体对象封装操作类 */ @Override - public PagePlus pageVo(PagePlus page, Wrapper queryWrapper, CopyOptions copyOptions) { + public PagePlus pageVo(PagePlus page, Wrapper queryWrapper) { PagePlus result = getBaseMapper().selectPage(page, queryWrapper); - List volist = BeanCopyUtils.listCopy(result.getRecords(), copyOptions, voClass); + List volist = BeanCopyUtils.copyList(result.getRecords(), voClass); result.setRecordsVo(volist); return result; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java index 8bf40d16a..3bc443435 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java @@ -1,16 +1,16 @@ package com.ruoyi.common.utils; -import cn.hutool.core.bean.copier.BeanCopier; -import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; +import cn.hutool.extra.cglib.CglibUtil; import java.util.List; -import java.util.stream.Collectors; +import java.util.Map; /** - * bean深拷贝工具 + * bean深拷贝工具(基于 cglib 性能优异) * * @author Lion Li */ @@ -19,48 +19,99 @@ public class BeanCopyUtils { /** * 单对象基于class创建拷贝 * - * @param source 数据来源实体 - * @param copyOptions copy条件 - * @param desc 描述对象 转换后的对象 + * @param source 数据来源实体 + * @param desc 描述对象 转换后的对象 * @return desc */ - public static V oneCopy(T source, CopyOptions copyOptions, Class desc) { - V v = ReflectUtil.newInstanceIfPossible(desc); - return oneCopy(source, copyOptions, v); + public static V copy(T source, Class desc) { + if (ObjectUtil.isNull(source)) { + return null; + } + if (ObjectUtil.isNull(desc)) { + return null; + } + return CglibUtil.copy(source, desc); } /** * 单对象基于对象创建拷贝 * - * @param source 数据来源实体 - * @param copyOptions copy条件 - * @param desc 转换后的对象 + * @param source 数据来源实体 + * @param desc 转换后的对象 * @return desc */ - public static V oneCopy(T source, CopyOptions copyOptions, V desc) { + public static V copy(T source, V desc) { if (ObjectUtil.isNull(source)) { return null; } - return BeanCopier.create(source, desc, copyOptions).copy(); + if (ObjectUtil.isNull(desc)) { + return null; + } + CglibUtil.copy(source, desc); + return desc; } /** * 列表对象基于class创建拷贝 * - * @param sourceList 数据来源实体列表 - * @param copyOptions copy条件 - * @param desc 描述对象 转换后的对象 + * @param sourceList 数据来源实体列表 + * @param desc 描述对象 转换后的对象 * @return desc */ - public static List listCopy(List sourceList, CopyOptions copyOptions, Class desc) { + public static List copyList(List sourceList, Class desc) { if (ObjectUtil.isNull(sourceList)) { return null; } if (CollUtil.isEmpty(sourceList)) { return CollUtil.newArrayList(); } - return sourceList.stream() - .map(source -> oneCopy(source, copyOptions, desc)) - .collect(Collectors.toList()); + return CglibUtil.copyList(sourceList, () -> ReflectUtil.newInstanceIfPossible(desc)); + } + + /** + * bean拷贝到map + * + * @param bean 数据来源实体 + * @return map对象 + */ + public static Map copyToMap(T bean) { + if (ObjectUtil.isNull(bean)) { + return null; + } + return CglibUtil.toMap(bean); + } + + /** + * map拷贝到bean + * + * @param map 数据来源 + * @param beanClass bean类 + * @return bean对象 + */ + public static T mapToBean(Map map, Class beanClass) { + if (MapUtil.isEmpty(map)) { + return null; + } + if (ObjectUtil.isNull(beanClass)) { + return null; + } + return CglibUtil.toBean(map, beanClass); + } + + /** + * map拷贝到bean + * + * @param map 数据来源 + * @param bean bean对象 + * @return bean对象 + */ + public static T mapToBean(Map map, T bean) { + if (MapUtil.isEmpty(map)) { + return null; + } + if (ObjectUtil.isNull(bean)) { + return null; + } + return CglibUtil.fillBean(map, bean); } } From e11a6163dd70996188d6d54e49ae7deeb8ae28e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 10:59:54 +0800 Subject: [PATCH 02/15] =?UTF-8?q?update=20=E7=A6=81=E6=AD=A2=E6=89=80?= =?UTF-8?q?=E6=9C=89=E5=B7=A5=E5=85=B7=E7=B1=BB=E5=AE=9E=E4=BE=8B=E5=8C=96?= =?UTF-8?q?=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E4=B9=A6=E5=86=99?= =?UTF-8?q?=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/BeanCopyUtils.java | 3 ++ .../com/ruoyi/common/utils/DateUtils.java | 3 ++ .../com/ruoyi/common/utils/JsonUtils.java | 18 ++++--- .../com/ruoyi/common/utils/MessageUtils.java | 11 ++-- .../com/ruoyi/common/utils/PageUtils.java | 3 ++ .../com/ruoyi/common/utils/RedisUtils.java | 52 +++++++++---------- .../com/ruoyi/common/utils/SecurityUtils.java | 3 ++ .../com/ruoyi/common/utils/ServletUtils.java | 3 ++ .../com/ruoyi/common/utils/StringUtils.java | 3 ++ .../java/com/ruoyi/common/utils/Threads.java | 12 +++-- .../ruoyi/common/utils/TreeBuildUtils.java | 3 ++ .../ruoyi/common/utils/ValidatorUtils.java | 4 ++ .../ruoyi/common/utils/file/FileUtils.java | 3 ++ .../ruoyi/common/utils/ip/AddressUtils.java | 3 ++ .../com/ruoyi/common/utils/poi/ExcelUtil.java | 3 ++ .../common/utils/reflect/ReflectUtils.java | 3 ++ .../com/ruoyi/common/utils/sql/SqlUtil.java | 5 +- 17 files changed, 93 insertions(+), 42 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java index 3bc443435..0bd4a55b9 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java @@ -5,6 +5,8 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.extra.cglib.CglibUtil; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import java.util.List; import java.util.Map; @@ -14,6 +16,7 @@ import java.util.Map; * * @author Lion Li */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class BeanCopyUtils { /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java index 1e27f2494..bc38eedd5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java @@ -1,5 +1,7 @@ package com.ruoyi.common.utils; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import org.apache.commons.lang3.time.DateFormatUtils; import java.lang.management.ManagementFactory; @@ -12,6 +14,7 @@ import java.util.Date; * * @author ruoyi */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class DateUtils extends org.apache.commons.lang3.time.DateUtils { public static String YYYY = "yyyy"; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java index b65c23dc8..1c01912a3 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java @@ -21,14 +21,18 @@ import java.util.Map; @NoArgsConstructor(access = AccessLevel.PRIVATE) public class JsonUtils { - private static ObjectMapper objectMapper = SpringUtils.getBean(ObjectMapper.class); + private static final ObjectMapper OBJECT_MAPPER = SpringUtils.getBean(ObjectMapper.class); + + public static ObjectMapper getObjectMapper() { + return OBJECT_MAPPER; + } public static String toJsonString(Object object) { if (StringUtils.isNull(object)) { return null; } try { - return objectMapper.writeValueAsString(object); + return OBJECT_MAPPER.writeValueAsString(object); } catch (JsonProcessingException e) { throw new RuntimeException(e); } @@ -39,7 +43,7 @@ public class JsonUtils { return null; } try { - return objectMapper.readValue(text, clazz); + return OBJECT_MAPPER.readValue(text, clazz); } catch (IOException e) { throw new RuntimeException(e); } @@ -50,7 +54,7 @@ public class JsonUtils { return null; } try { - return objectMapper.readValue(bytes, clazz); + return OBJECT_MAPPER.readValue(bytes, clazz); } catch (IOException e) { throw new RuntimeException(e); } @@ -61,7 +65,7 @@ public class JsonUtils { return null; } try { - return objectMapper.readValue(text, typeReference); + return OBJECT_MAPPER.readValue(text, typeReference); } catch (IOException e) { throw new RuntimeException(e); } @@ -72,7 +76,7 @@ public class JsonUtils { return null; } try { - return objectMapper.readValue(text, new TypeReference>() { + return OBJECT_MAPPER.readValue(text, new TypeReference>() { }); } catch (IOException e) { throw new RuntimeException(e); @@ -84,7 +88,7 @@ public class JsonUtils { return new ArrayList<>(); } try { - return objectMapper.readValue(text, objectMapper.getTypeFactory().constructCollectionType(List.class, clazz)); + return OBJECT_MAPPER.readValue(text, OBJECT_MAPPER.getTypeFactory().constructCollectionType(List.class, clazz)); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java index 039eb2435..c9c091d6f 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java @@ -1,15 +1,21 @@ package com.ruoyi.common.utils; import com.ruoyi.common.utils.spring.SpringUtils; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; /** * 获取i18n资源文件 * - * @author ruoyi + * @author Lion Li */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class MessageUtils { + + private static final MessageSource MESSAGE_SOURCE = SpringUtils.getBean(MessageSource.class); + /** * 根据消息键和参数 获取消息 委托给spring messageSource * @@ -18,7 +24,6 @@ public class MessageUtils { * @return 获取国际化翻译值 */ public static String message(String code, Object... args) { - MessageSource messageSource = SpringUtils.getBean(MessageSource.class); - return messageSource.getMessage(code, args, LocaleContextHolder.getLocale()); + return MESSAGE_SOURCE.getMessage(code, args, LocaleContextHolder.getLocale()); } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java index 4b3dd9b91..16a5a24f7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java @@ -8,6 +8,8 @@ import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.PagePlus; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.utils.sql.SqlUtil; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import java.util.List; @@ -16,6 +18,7 @@ import java.util.List; * * @author Lion Li */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class PageUtils { /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java index 7f4d2cace..3ae0fd444 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java @@ -1,6 +1,6 @@ package com.ruoyi.common.utils; -import com.google.common.collect.Lists; +import cn.hutool.core.collection.IterUtil; import com.ruoyi.common.utils.spring.SpringUtils; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -23,7 +23,7 @@ import java.util.function.Consumer; @SuppressWarnings(value = {"unchecked", "rawtypes"}) public class RedisUtils { - private static RedissonClient client = SpringUtils.getBean(RedissonClient.class); + private static final RedissonClient CLIENT = SpringUtils.getBean(RedissonClient.class); /** * 限流 @@ -35,7 +35,7 @@ public class RedisUtils { * @return -1 表示失败 */ public static long rateLimiter(String key, RateType rateType, int rate, int rateInterval) { - RRateLimiter rateLimiter = client.getRateLimiter(key); + RRateLimiter rateLimiter = CLIENT.getRateLimiter(key); rateLimiter.trySetRate(rateType, rate, rateInterval, RateIntervalUnit.SECONDS); if (rateLimiter.tryAcquire()) { return rateLimiter.availablePermits(); @@ -48,7 +48,7 @@ public class RedisUtils { * 获取实例id */ public static String getClientId() { - return client.getId(); + return CLIENT.getId(); } /** @@ -59,13 +59,13 @@ public class RedisUtils { * @param consumer 自定义处理 */ public static void publish(String channelKey, T msg, Consumer consumer) { - RTopic topic = client.getTopic(channelKey); + RTopic topic = CLIENT.getTopic(channelKey); topic.publish(msg); consumer.accept(msg); } public static void publish(String channelKey, T msg) { - RTopic topic = client.getTopic(channelKey); + RTopic topic = CLIENT.getTopic(channelKey); topic.publish(msg); } @@ -77,7 +77,7 @@ public class RedisUtils { * @param consumer 自定义处理 */ public static void subscribe(String channelKey, Class clazz, Consumer consumer) { - RTopic topic = client.getTopic(channelKey); + RTopic topic = CLIENT.getTopic(channelKey); topic.addListener(clazz, (channel, msg) -> consumer.accept(msg)); } @@ -100,7 +100,7 @@ public class RedisUtils { * @since Redis 6.X 以上使用 setAndKeepTTL 兼容 5.X 方案 */ public static void setCacheObject(final String key, final T value, final boolean isSaveTtl) { - RBucket bucket = client.getBucket(key); + RBucket bucket = CLIENT.getBucket(key); if (isSaveTtl) { try { bucket.setAndKeepTTL(value); @@ -123,7 +123,7 @@ public class RedisUtils { * @param timeUnit 时间颗粒度 */ public static void setCacheObject(final String key, final T value, final long timeout, final TimeUnit timeUnit) { - RBucket result = client.getBucket(key); + RBucket result = CLIENT.getBucket(key); result.set(value); result.expire(timeout, timeUnit); } @@ -148,7 +148,7 @@ public class RedisUtils { * @return true=设置成功;false=设置失败 */ public static boolean expire(final String key, final long timeout, final TimeUnit unit) { - RBucket rBucket = client.getBucket(key); + RBucket rBucket = CLIENT.getBucket(key); return rBucket.expire(timeout, unit); } @@ -159,7 +159,7 @@ public class RedisUtils { * @return 缓存键值对应的数据 */ public static T getCacheObject(final String key) { - RBucket rBucket = client.getBucket(key); + RBucket rBucket = CLIENT.getBucket(key); return rBucket.get(); } @@ -170,7 +170,7 @@ public class RedisUtils { * @return 剩余存活时间 */ public static long getTimeToLive(final String key) { - RBucket rBucket = client.getBucket(key); + RBucket rBucket = CLIENT.getBucket(key); return rBucket.remainTimeToLive(); } @@ -180,7 +180,7 @@ public class RedisUtils { * @param key */ public static boolean deleteObject(final String key) { - return client.getBucket(key).delete(); + return CLIENT.getBucket(key).delete(); } /* */ @@ -192,7 +192,7 @@ public class RedisUtils { * @return */ public static void deleteObject(final Collection collection) { - RBatch batch = client.createBatch(); + RBatch batch = CLIENT.createBatch(); collection.forEach(t -> { batch.getBucket(t.toString()).deleteAsync(); }); @@ -207,7 +207,7 @@ public class RedisUtils { * @return 缓存的对象 */ public static boolean setCacheList(final String key, final List dataList) { - RList rList = client.getList(key); + RList rList = CLIENT.getList(key); return rList.addAll(dataList); } @@ -218,7 +218,7 @@ public class RedisUtils { * @return 缓存键值对应的数据 */ public static List getCacheList(final String key) { - RList rList = client.getList(key); + RList rList = CLIENT.getList(key); return rList.readAll(); } @@ -230,7 +230,7 @@ public class RedisUtils { * @return 缓存数据的对象 */ public static boolean setCacheSet(final String key, final Set dataSet) { - RSet rSet = client.getSet(key); + RSet rSet = CLIENT.getSet(key); return rSet.addAll(dataSet); } @@ -241,7 +241,7 @@ public class RedisUtils { * @return */ public static Set getCacheSet(final String key) { - RSet rSet = client.getSet(key); + RSet rSet = CLIENT.getSet(key); return rSet.readAll(); } @@ -253,7 +253,7 @@ public class RedisUtils { */ public static void setCacheMap(final String key, final Map dataMap) { if (dataMap != null) { - RMap rMap = client.getMap(key); + RMap rMap = CLIENT.getMap(key); rMap.putAll(dataMap); } } @@ -265,7 +265,7 @@ public class RedisUtils { * @return */ public static Map getCacheMap(final String key) { - RMap rMap = client.getMap(key); + RMap rMap = CLIENT.getMap(key); return rMap.getAll(rMap.keySet()); } @@ -277,7 +277,7 @@ public class RedisUtils { * @param value 值 */ public static void setCacheMapValue(final String key, final String hKey, final T value) { - RMap rMap = client.getMap(key); + RMap rMap = CLIENT.getMap(key); rMap.put(hKey, value); } @@ -289,7 +289,7 @@ public class RedisUtils { * @return Hash中的对象 */ public static T getCacheMapValue(final String key, final String hKey) { - RMap rMap = client.getMap(key); + RMap rMap = CLIENT.getMap(key); return rMap.get(hKey); } @@ -301,7 +301,7 @@ public class RedisUtils { * @return Hash中的对象 */ public static T delCacheMapValue(final String key, final String hKey) { - RMap rMap = client.getMap(key); + RMap rMap = CLIENT.getMap(key); return rMap.remove(hKey); } @@ -313,7 +313,7 @@ public class RedisUtils { * @return Hash对象集合 */ public static Map getMultiCacheMapValue(final String key, final Set hKeys) { - RMap rMap = client.getMap(key); + RMap rMap = CLIENT.getMap(key); return rMap.getAll(hKeys); } @@ -324,7 +324,7 @@ public class RedisUtils { * @return 对象列表 */ public static Collection keys(final String pattern) { - Iterable iterable = client.getKeys().getKeysByPattern(pattern); - return Lists.newArrayList(iterable); + Iterable iterable = CLIENT.getKeys().getKeysByPattern(pattern); + return IterUtil.toList(iterable); } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java index 91a40ec12..43cb8fe17 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -3,6 +3,8 @@ package com.ruoyi.common.utils; import cn.hutool.http.HttpStatus; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.exception.ServiceException; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @@ -12,6 +14,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; * * @author ruoyi */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class SecurityUtils { /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java index 1e1db3749..5babaeb30 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java @@ -3,6 +3,8 @@ package com.ruoyi.common.utils; import cn.hutool.core.convert.Convert; import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.http.HttpStatus; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import org.springframework.http.MediaType; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; @@ -19,6 +21,7 @@ import java.nio.charset.StandardCharsets; * * @author ruoyi */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class ServletUtils extends ServletUtil { /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java index 12fc4db9b..f96c1e5a5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java @@ -7,6 +7,8 @@ import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import java.util.*; @@ -15,6 +17,7 @@ import java.util.*; * * @author Lion Li */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class StringUtils extends org.apache.commons.lang3.StringUtils { /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java index 5be9582ad..1952929dd 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java @@ -1,7 +1,8 @@ package com.ruoyi.common.utils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; import java.util.concurrent.*; @@ -10,8 +11,9 @@ import java.util.concurrent.*; * * @author ruoyi */ +@Slf4j +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class Threads { - private static final Logger logger = LoggerFactory.getLogger(Threads.class); /** * sleep等待,单位为毫秒 @@ -38,7 +40,7 @@ public class Threads { if (!pool.awaitTermination(120, TimeUnit.SECONDS)) { pool.shutdownNow(); if (!pool.awaitTermination(120, TimeUnit.SECONDS)) { - logger.info("Pool did not terminate"); + log.info("Pool did not terminate"); } } } catch (InterruptedException ie) { @@ -67,7 +69,7 @@ public class Threads { } } if (t != null) { - logger.error(t.getMessage(), t); + log.error(t.getMessage(), t); } } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeBuildUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeBuildUtils.java index a8380a287..7d2541062 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeBuildUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeBuildUtils.java @@ -4,6 +4,8 @@ import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNodeConfig; import cn.hutool.core.lang.tree.TreeUtil; import cn.hutool.core.lang.tree.parser.NodeParser; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import java.util.List; @@ -12,6 +14,7 @@ import java.util.List; * * @author Lion Li */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class TreeBuildUtils extends TreeUtil { /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ValidatorUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ValidatorUtils.java index c28cf80fa..e26e7846c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ValidatorUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ValidatorUtils.java @@ -1,5 +1,8 @@ package com.ruoyi.common.utils; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import javax.validation.Validation; @@ -11,6 +14,7 @@ import java.util.Set; * * @author Lion Li */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class ValidatorUtils { private static final Validator VALID = Validation.buildDefaultValidatorFactory().getValidator(); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java index ff56a2a70..5118d5169 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java @@ -1,6 +1,8 @@ package com.ruoyi.common.utils.file; import cn.hutool.core.io.FileUtil; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import javax.servlet.http.HttpServletResponse; import java.io.UnsupportedEncodingException; @@ -12,6 +14,7 @@ import java.nio.charset.StandardCharsets; * * @author Lion Li */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class FileUtils extends FileUtil { /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java index 808cc8d5c..b519226bb 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java @@ -7,6 +7,8 @@ import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.utils.JsonUtils; import com.ruoyi.common.utils.StringUtils; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import java.util.Map; @@ -17,6 +19,7 @@ import java.util.Map; * @author Lion Li */ @Slf4j +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class AddressUtils { // IP地址查询 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 6c5dc5fc8..36dc67fa1 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -9,6 +9,8 @@ import com.ruoyi.common.excel.ExcelListener; import com.ruoyi.common.excel.ExcelResult; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.FileUtils; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; @@ -21,6 +23,7 @@ import java.util.List; * * @author Lion Li */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class ExcelUtil { /** diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java index 07ac943c3..0e0d7e7f5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java @@ -2,6 +2,8 @@ package com.ruoyi.common.utils.reflect; import cn.hutool.core.util.ReflectUtil; import com.ruoyi.common.utils.StringUtils; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import java.lang.reflect.Method; @@ -11,6 +13,7 @@ import java.lang.reflect.Method; * @author Lion Li */ @SuppressWarnings("rawtypes") +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class ReflectUtils extends ReflectUtil { private static final String SETTER_PREFIX = "set"; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java index 8121e0253..eabe6ad95 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java @@ -2,17 +2,20 @@ package com.ruoyi.common.utils.sql; import com.ruoyi.common.exception.UtilException; import com.ruoyi.common.utils.StringUtils; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; /** * sql操作工具类 * * @author ruoyi */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class SqlUtil { /** * 仅支持字母、数字、下划线、空格、逗号、小数点(支持多个字段排序) */ - public static String SQL_PATTERN = "[a-zA-Z0-9_\\ \\,\\.]+"; + public static final String SQL_PATTERN = "[a-zA-Z0-9_\\ \\,\\.]+"; /** * 检查字符,防止注入绕过 From c3061a19a2363b47742d01f1c2cf5e7c3382bda3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 11:01:07 +0800 Subject: [PATCH 03/15] =?UTF-8?q?remove=20=E7=A7=BB=E9=99=A4=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/DictUtils.java | 158 ------------------ 1 file changed, 158 deletions(-) delete mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java deleted file mode 100644 index 3309da14e..000000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.ruoyi.common.utils; - -import cn.hutool.core.collection.CollUtil; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.core.domain.entity.SysDictData; - -import java.util.Collection; -import java.util.List; - -/** - * 字典工具类 - * - * @author ruoyi - * @deprecated 3.5.0 版本删除 迁移至 {@link com.ruoyi.common.core.service.DictService} - */ -@Deprecated -public class DictUtils { - - /** - * 分隔符 - */ - public static final String SEPARATOR = ","; - - /** - * 设置字典缓存 - * - * @param key 参数键 - * @param dictDatas 字典数据列表 - */ - public static void setDictCache(String key, List dictDatas) { - RedisUtils.setCacheObject(getCacheKey(key), dictDatas); - } - - /** - * 获取字典缓存 - * - * @param key 参数键 - * @return dictDatas 字典数据列表 - */ - public static List getDictCache(String key) { - List dictDatas = RedisUtils.getCacheObject(getCacheKey(key)); - if (StringUtils.isNotNull(dictDatas)) { - return dictDatas; - } - return null; - } - - /** - * 根据字典类型和字典值获取字典标签 - * - * @param dictType 字典类型 - * @param dictValue 字典值 - * @return 字典标签 - */ - public static String getDictLabel(String dictType, String dictValue) { - return getDictLabel(dictType, dictValue, SEPARATOR); - } - - /** - * 根据字典类型和字典标签获取字典值 - * - * @param dictType 字典类型 - * @param dictLabel 字典标签 - * @return 字典值 - */ - public static String getDictValue(String dictType, String dictLabel) { - return getDictValue(dictType, dictLabel, SEPARATOR); - } - - /** - * 根据字典类型和字典值获取字典标签 - * - * @param dictType 字典类型 - * @param dictValue 字典值 - * @param separator 分隔符 - * @return 字典标签 - */ - public static String getDictLabel(String dictType, String dictValue, String separator) { - StringBuilder propertyString = new StringBuilder(); - List datas = getDictCache(dictType); - - if (StringUtils.containsAny(dictValue, separator) && CollUtil.isNotEmpty(datas)) { - for (SysDictData dict : datas) { - for (String value : dictValue.split(separator)) { - if (value.equals(dict.getDictValue())) { - propertyString.append(dict.getDictLabel() + separator); - break; - } - } - } - } else { - for (SysDictData dict : datas) { - if (dictValue.equals(dict.getDictValue())) { - return dict.getDictLabel(); - } - } - } - return StringUtils.stripEnd(propertyString.toString(), separator); - } - - /** - * 根据字典类型和字典标签获取字典值 - * - * @param dictType 字典类型 - * @param dictLabel 字典标签 - * @param separator 分隔符 - * @return 字典值 - */ - public static String getDictValue(String dictType, String dictLabel, String separator) { - StringBuilder propertyString = new StringBuilder(); - List datas = getDictCache(dictType); - - if (StringUtils.containsAny(dictLabel, separator) && CollUtil.isNotEmpty(datas)) { - for (SysDictData dict : datas) { - for (String label : dictLabel.split(separator)) { - if (label.equals(dict.getDictLabel())) { - propertyString.append(dict.getDictValue() + separator); - break; - } - } - } - } else { - for (SysDictData dict : datas) { - if (dictLabel.equals(dict.getDictLabel())) { - return dict.getDictValue(); - } - } - } - return StringUtils.stripEnd(propertyString.toString(), separator); - } - - /** - * 删除指定字典缓存 - * - * @param key 字典键 - */ - public static void removeDictCache(String key) { - RedisUtils.deleteObject(getCacheKey(key)); - } - - /** - * 清空字典缓存 - */ - public static void clearDictCache() { - Collection keys = RedisUtils.keys(Constants.SYS_DICT_KEY + "*"); - RedisUtils.deleteObject(keys); - } - - /** - * 设置cache key - * - * @param configKey 参数键 - * @return 缓存键key - */ - public static String getCacheKey(String configKey) { - return Constants.SYS_DICT_KEY + configKey; - } -} From 90ba39593af0ca2bf2d2f354e06baeb157166bda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 12:12:20 +0800 Subject: [PATCH 04/15] =?UTF-8?q?update=20=E5=A3=B0=E6=98=8E=20cglib=20?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=20=E6=8E=A7=E5=88=B6=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 +++++++ ruoyi-common/pom.xml | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/pom.xml b/pom.xml index e96836a09..1328919be 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,7 @@ 1.5.22 4.1.2 2.2.11 + 3.3.0 2.3 3.4.3.4 3.9.1 @@ -114,6 +115,12 @@ + + cglib + cglib + ${cglib.version} + + org.apache.velocity diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 68db4ccba..c153cd5b8 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -64,6 +64,11 @@ easyexcel + + cglib + cglib + + org.yaml From a39a98cda9d758948b97d5d25e31a9428bad21ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 14:35:55 +0800 Subject: [PATCH 05/15] =?UTF-8?q?update=20=E7=A7=BB=E9=99=A4=20=E5=8C=85?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/common/excel/DefaultExcelListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java b/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java index f626a5e11..9936f6762 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java @@ -5,7 +5,7 @@ import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.exception.ExcelAnalysisException; import com.alibaba.excel.exception.ExcelDataConvertException; -import com.alibaba.fastjson.JSON; +import com.ruoyi.common.utils.JsonUtils; import com.ruoyi.common.utils.ValidatorUtils; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -84,7 +84,7 @@ public class DefaultExcelListener extends AnalysisEventListener implements @Override public void invokeHeadMap(Map headMap, AnalysisContext context) { this.headMap = headMap; - log.debug("解析到一条表头数据: {}", JSON.toJSONString(headMap)); + log.debug("解析到一条表头数据: {}", JsonUtils.toJsonString(headMap)); } @Override From 8f8e796c777577dcef888b94603ed93bebcc1ee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 14:36:38 +0800 Subject: [PATCH 06/15] =?UTF-8?q?update=20tlog=201.3.4=20=3D>=201.3.5=20?= =?UTF-8?q?=E5=90=AF=E7=94=A8=20tlog=20=E8=87=AA=E5=8A=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 22 ++----------- ruoyi-common/pom.xml | 10 ------ ruoyi-framework/pom.xml | 5 +++ .../PlusWebInvokeTimeInterceptor.java | 8 ++--- .../ruoyi/framework/config/TLogConfig.java | 33 +++---------------- ruoyi-job/pom.xml | 2 +- .../com/ruoyi/job/config/XxlJobConfig.java | 8 +---- 7 files changed, 18 insertions(+), 70 deletions(-) diff --git a/pom.xml b/pom.xml index 1328919be..0dd48a3b3 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ 3.16.4 2.2.1 3.4.1 - 1.3.4 + 1.3.5 2.3.0 @@ -203,29 +203,13 @@ com.yomahub - tlog-spring-boot-configuration + tlog-web-spring-boot-starter ${tlog.version} com.yomahub - tlog-webroot - ${tlog.version} - - - javassist - org.javassist - - - guava - com.google.guava - - - - - - com.yomahub - tlog-xxl-job + tlog-xxljob-spring-boot-starter ${tlog.version} diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index c153cd5b8..2111510a7 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -140,16 +140,6 @@ lock4j-redisson-spring-boot-starter - - com.yomahub - tlog-spring-boot-configuration - - - - com.yomahub - tlog-webroot - - diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index d5466af29..a368e5e26 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -63,6 +63,11 @@ ruoyi-common + + com.yomahub + tlog-web-spring-boot-starter + + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/Interceptor/PlusWebInvokeTimeInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/Interceptor/PlusWebInvokeTimeInterceptor.java index e2120bf00..a82fb65c6 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/Interceptor/PlusWebInvokeTimeInterceptor.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/Interceptor/PlusWebInvokeTimeInterceptor.java @@ -35,14 +35,14 @@ public class PlusWebInvokeTimeInterceptor extends AbsTLogWebHandlerMethodInterce // 打印请求参数 if (isJsonRequest(request)) { String jsonParam = new RequestWrapper(request).getBodyString(); - log.info("[PLUS]开始请求 => URL[{}],参数类型[json],参数:[{}]", url, jsonParam); + log.debug("[PLUS]开始请求 => URL[{}],参数类型[json],参数:[{}]", url, jsonParam); } else { Map parameterMap = request.getParameterMap(); if (MapUtil.isNotEmpty(parameterMap)) { String parameters = JsonUtils.toJsonString(parameterMap); - log.info("[PLUS]开始请求 => URL[{}],参数类型[param],参数:[{}]", url, parameters); + log.debug("[PLUS]开始请求 => URL[{}],参数类型[param],参数:[{}]", url, parameters); } else { - log.info("[PLUS]开始请求 => URL[{}],无参数", url); + log.debug("[PLUS]开始请求 => URL[{}],无参数", url); } } @@ -63,7 +63,7 @@ public class PlusWebInvokeTimeInterceptor extends AbsTLogWebHandlerMethodInterce if (TLogContext.enableInvokeTimePrint()) { StopWatch stopWatch = invokeTimeTL.get(); stopWatch.stop(); - log.info("[PLUS]结束请求 => URL[{}],耗时:[{}]毫秒", request.getMethod() + " " + request.getRequestURI(), stopWatch.getTime()); + log.debug("[PLUS]结束请求 => URL[{}],耗时:[{}]毫秒", request.getMethod() + " " + request.getRequestURI(), stopWatch.getTime()); invokeTimeTL.remove(); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/TLogConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/TLogConfig.java index c1665d9b0..5ae55add2 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/TLogConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/TLogConfig.java @@ -1,13 +1,8 @@ package com.ruoyi.framework.config; -import com.yomahub.tlog.core.aop.AspectLogAop; -import com.yomahub.tlog.spring.TLogPropertyInit; -import com.yomahub.tlog.spring.TLogSpringAware; -import com.yomahub.tlog.springboot.property.TLogProperty; -import org.springframework.context.annotation.Bean; +import com.yomahub.tlog.springboot.TLogWebAutoConfiguration; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.core.annotation.Order; /** * 整合 TLog 框架配置 @@ -15,29 +10,9 @@ import org.springframework.core.annotation.Order; * @author Lion Li * @since 3.3.0 */ -@Order(-999) @Configuration -@Import(TLogProperty.class) +// 排除 web 自动配置 自定义实现 +@EnableAutoConfiguration(exclude = TLogWebAutoConfiguration.class) public class TLogConfig { - @Bean - public TLogPropertyInit tLogPropertyInit(TLogProperty tLogProperty) { - TLogPropertyInit tLogPropertyInit = new TLogPropertyInit(); - tLogPropertyInit.setPattern(tLogProperty.getPattern()); - tLogPropertyInit.setEnableInvokeTimePrint(tLogProperty.enableInvokeTimePrint()); - tLogPropertyInit.setIdGenerator(tLogProperty.getIdGenerator()); - tLogPropertyInit.setMdcEnable(tLogProperty.getMdcEnable()); - return tLogPropertyInit; - } - - @Bean - public TLogSpringAware tLogSpringAware(){ - return new TLogSpringAware(); - } - - @Bean - public AspectLogAop aspectLogAop() { - return new AspectLogAop(); - } - } diff --git a/ruoyi-job/pom.xml b/ruoyi-job/pom.xml index a87b3efe9..3c13d3555 100644 --- a/ruoyi-job/pom.xml +++ b/ruoyi-job/pom.xml @@ -31,7 +31,7 @@ com.yomahub - tlog-xxl-job + tlog-xxljob-spring-boot-starter diff --git a/ruoyi-job/src/main/java/com/ruoyi/job/config/XxlJobConfig.java b/ruoyi-job/src/main/java/com/ruoyi/job/config/XxlJobConfig.java index 2df063e36..e051ff0d4 100644 --- a/ruoyi-job/src/main/java/com/ruoyi/job/config/XxlJobConfig.java +++ b/ruoyi-job/src/main/java/com/ruoyi/job/config/XxlJobConfig.java @@ -2,7 +2,6 @@ package com.ruoyi.job.config; import com.ruoyi.job.config.properties.XxlJobProperties; import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; -import com.yomahub.tlog.springboot.lifecircle.TLogXxljobEnhanceInit; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -40,9 +39,4 @@ public class XxlJobConfig { return xxlJobSpringExecutor; } - @Bean - public TLogXxljobEnhanceInit tLogXxljobEnhanceInit(){ - return new TLogXxljobEnhanceInit(); - } - -} \ No newline at end of file +} From 258dc16cfd46dedce82b56a64fa6de78ca3f56f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 14:36:59 +0800 Subject: [PATCH 07/15] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=20jdk=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AF=B4=E6=98=8E=20=E6=9A=82=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81=20jdk17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 7004f0e50..5967afd9b 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,6 @@ [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.5-blue.svg)]() [![JDK-8+](https://img.shields.io/badge/JDK-8-green.svg)]() [![JDK-11](https://img.shields.io/badge/JDK-11-green.svg)]() -[![JDK-17](https://img.shields.io/badge/JDK-17-green.svg)]() > RuoYi-Vue-Plus 是基于 RuoYi-Vue 针对 `分布式集群` 场景升级(不兼容原框架) From 8362fe1b3923e44619aadf3c3c1466216b8f52f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 14:48:04 +0800 Subject: [PATCH 08/15] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E7=94=A8=E6=88=B7=E7=9A=84=E8=A7=92=E8=89=B2=E7=BB=84?= =?UTF-8?q?=E3=80=81=E5=B2=97=E4=BD=8D=E7=BB=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysUserServiceImpl.java | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index ef32fd122..be9999424 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -29,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * 用户 业务层处理 @@ -127,14 +129,10 @@ public class SysUserServiceImpl extends ServicePlusImpl list = roleMapper.selectRolesByUserName(userName); - StringBuilder idsStr = new StringBuilder(); - for (SysRole role : list) { - idsStr.append(role.getRoleName()).append(","); + if (CollUtil.isEmpty(list)) { + return StringUtils.EMPTY; } - if (StringUtils.isNotEmpty(idsStr.toString())) { - return idsStr.substring(0, idsStr.length() - 1); - } - return idsStr.toString(); + return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(",")); } /** @@ -146,14 +144,10 @@ public class SysUserServiceImpl extends ServicePlusImpl list = postMapper.selectPostsByUserName(userName); - StringBuilder idsStr = new StringBuilder(); - for (SysPost post : list) { - idsStr.append(post.getPostName()).append(","); + if (CollUtil.isEmpty(list)) { + return StringUtils.EMPTY; } - if (StringUtils.isNotEmpty(idsStr.toString())) { - return idsStr.substring(0, idsStr.length() - 1); - } - return idsStr.toString(); + return list.stream().map(SysPost::getPostName).collect(Collectors.joining(",")); } /** From 1445d6d24aad83e30b0c3e53e115528055a29452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 19:52:27 +0800 Subject: [PATCH 09/15] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=20RedisUtils?= =?UTF-8?q?=20=E8=BF=94=E5=9B=9E=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=AE=9E?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/common/utils/RedisUtils.java | 6 +++--- .../java/com/ruoyi/framework/aspectj/RateLimiterAspect.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java index 3ae0fd444..7104b4d24 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java @@ -45,10 +45,10 @@ public class RedisUtils { } /** - * 获取实例id + * 获取客户端实例 */ - public static String getClientId() { - return CLIENT.getId(); + public static RedissonClient getClient() { + return CLIENT; } /** diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java index df4d9c877..ce3de2bea 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java @@ -54,7 +54,7 @@ public class RateLimiterAspect { stringBuffer.append(ServletUtils.getClientIP()).append("-"); } else if (rateLimiter.limitType() == LimitType.CLUSTER){ // 获取客户端实例id - stringBuffer.append(RedisUtils.getClientId()).append("-"); + stringBuffer.append(RedisUtils.getClient().getId()).append("-"); } MethodSignature signature = (MethodSignature) point.getSignature(); Method method = signature.getMethod(); From bcbc7c1d47546e48481d8ef65fe3385f5704ecb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 20:22:45 +0800 Subject: [PATCH 10/15] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=20RedisUtils?= =?UTF-8?q?=20=E5=A2=9E=E5=8A=A0=20=E6=B3=A8=E5=86=8C=E7=9B=91=E5=90=AC?= =?UTF-8?q?=E5=99=A8=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/RedisUtils.java | 73 ++++++++++++++++--- 1 file changed, 61 insertions(+), 12 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java index 7104b4d24..0ccbe0fa5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java @@ -94,8 +94,8 @@ public class RedisUtils { /** * 缓存基本的对象,保留当前对象 TTL 有效期 * - * @param key 缓存的键值 - * @param value 缓存的值 + * @param key 缓存的键值 + * @param value 缓存的值 * @param isSaveTtl 是否保留TTL有效期(例如: set之前ttl剩余90 set之后还是为90) * @since Redis 6.X 以上使用 setAndKeepTTL 兼容 5.X 方案 */ @@ -128,6 +128,19 @@ public class RedisUtils { result.expire(timeout, timeUnit); } + /** + * 注册对象监听器 + * + * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 + * + * @param key 缓存的键值 + * @param listener 监听器配置 + */ + public static void addObjectListener(final String key, final ObjectListener listener) { + RBucket result = CLIENT.getBucket(key); + result.addListener(listener); + } + /** * 设置有效时间 * @@ -177,19 +190,16 @@ public class RedisUtils { /** * 删除单个对象 * - * @param key + * @param key 缓存的键值 */ public static boolean deleteObject(final String key) { return CLIENT.getBucket(key).delete(); } - /* */ - /** * 删除集合对象 * * @param collection 多个对象 - * @return */ public static void deleteObject(final Collection collection) { RBatch batch = CLIENT.createBatch(); @@ -211,6 +221,19 @@ public class RedisUtils { return rList.addAll(dataList); } + /** + * 注册List监听器 + * + * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 + * + * @param key 缓存的键值 + * @param listener 监听器配置 + */ + public static void addListListener(final String key, final ObjectListener listener) { + RList rList = CLIENT.getList(key); + rList.addListener(listener); + } + /** * 获得缓存的list对象 * @@ -234,11 +257,24 @@ public class RedisUtils { return rSet.addAll(dataSet); } + /** + * 注册Set监听器 + * + * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 + * + * @param key 缓存的键值 + * @param listener 监听器配置 + */ + public static void addSetListener(final String key, final ObjectListener listener) { + RSet rSet = CLIENT.getSet(key); + rSet.addListener(listener); + } + /** * 获得缓存的set * - * @param key - * @return + * @param key 缓存的key + * @return set对象 */ public static Set getCacheSet(final String key) { RSet rSet = CLIENT.getSet(key); @@ -248,8 +284,8 @@ public class RedisUtils { /** * 缓存Map * - * @param key - * @param dataMap + * @param key 缓存的键值 + * @param dataMap 缓存的数据 */ public static void setCacheMap(final String key, final Map dataMap) { if (dataMap != null) { @@ -258,11 +294,24 @@ public class RedisUtils { } } + /** + * 注册Map监听器 + * + * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置 + * + * @param key 缓存的键值 + * @param listener 监听器配置 + */ + public static void addMapListener(final String key, final ObjectListener listener) { + RMap rMap = CLIENT.getMap(key); + rMap.addListener(listener); + } + /** * 获得缓存的Map * - * @param key - * @return + * @param key 缓存的键值 + * @return map对象 */ public static Map getCacheMap(final String key) { RMap rMap = CLIENT.getMap(key); From ed22f395baadd742886e08cf271098eed0e7d488 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Mon, 6 Dec 2021 20:25:33 +0800 Subject: [PATCH 11/15] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=20redis.conf?= =?UTF-8?q?=20=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=20=E6=A0=87=E6=B3=A8key?= =?UTF-8?q?=E7=9B=91=E5=90=AC=E5=99=A8=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/docker/redis/redis.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/script/docker/redis/redis.conf b/script/docker/redis/redis.conf index 7d550e149..a07c9d213 100644 --- a/script/docker/redis/redis.conf +++ b/script/docker/redis/redis.conf @@ -1,6 +1,9 @@ # redis 密码 # requirepass ruoyi123 +# key 监听器配置 +# notify-keyspace-events Ex + # 配置持久化文件存储路径 dir /redis/data # 配置rdb From 09dfb25d735d26e08b81307515ec32708016da33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 7 Dec 2021 12:20:21 +0800 Subject: [PATCH 12/15] =?UTF-8?q?update=20=E4=BF=AE=E6=94=B9=20=E5=81=A5?= =?UTF-8?q?=E5=BA=B7=E6=A3=80=E6=9F=A5=E6=9D=83=E9=99=90=20=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E7=94=A8=E6=88=B7=E6=94=BE=E8=A1=8C=20=E6=8F=90?= =?UTF-8?q?=E9=AB=98=E5=AE=89=E5=85=A8=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-admin/src/main/resources/application.yml | 4 ++-- .../java/com/ruoyi/monitor/admin/config/SecurityConfig.java | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index f7ef6339d..abaf6d610 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -120,11 +120,11 @@ security: - /*/api-docs # druid 监控配置 - /druid/** + # 用户放行 + permit-all: # actuator 监控配置 - /actuator - /actuator/** - # 用户放行 - permit-all: # 重复提交 repeat-submit: diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java index 7335e2f25..04a0fdef0 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java @@ -2,7 +2,6 @@ package com.ruoyi.monitor.admin.config; import de.codecentric.boot.admin.server.config.AdminServerProperties; import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @@ -15,7 +14,6 @@ import org.springframework.security.web.authentication.SavedRequestAwareAuthenti */ @Configuration @EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true, proxyTargetClass = true) public class SecurityConfig extends WebSecurityConfigurerAdapter { private final String adminContextPath; @@ -34,8 +32,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { //授予对所有静态资产和登录页面的公共访问权限。 .antMatchers(adminContextPath + "/assets/**").permitAll() .antMatchers(adminContextPath + "/login").permitAll() - .antMatchers("/actuator").anonymous() - .antMatchers("/actuator/**").anonymous() + .antMatchers("/actuator").permitAll() + .antMatchers("/actuator/**").permitAll() //必须对每个其他请求进行身份验证 .anyRequest().authenticated().and() //配置登录和注销 From 37def02ee11c0f5205102bb2ae3abb19070ed340 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 7 Dec 2021 15:16:37 +0800 Subject: [PATCH 13/15] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8Dsql=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E5=AD=97=E5=A4=84=E7=90=86=20=E9=98=B2=E6=AD=A2?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E5=99=A8=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/domain/entity/SysMenu.java | 2 ++ .../resources/mapper/system/SysMenuMapper.xml | 26 +++---------------- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java index 30d074b75..8efc9f7a0 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java @@ -1,5 +1,6 @@ package com.ruoyi.common.core.domain.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.core.domain.TreeEntity; @@ -65,6 +66,7 @@ public class SysMenu extends TreeEntity { * 路由参数 */ @ApiModelProperty(value = "路由参数") + @TableField("`query`") private String query; /** diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index bfb543673..d441c73af 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -27,33 +27,13 @@ - - select menu_id, - menu_name, - parent_id, - order_num, - path, - component, - query, - is_frame, - is_cache, - menu_type, - visible, - status, - ifnull(perms, '') as perms, - icon, - create_time - from sys_menu - - -