From f1eeb08d906502b3f31e99d0b4afafad6b8276e1 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期三, 17 一月 2024 21:20:29 +0800
Subject: [PATCH] update 优化 !pr479 代码效率与书写格式

---
 ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java |   68 +---------------------------------
 1 files changed, 2 insertions(+), 66 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java
index a0e86a6..fbc4e52 100644
--- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java
+++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java
@@ -1,11 +1,8 @@
 package org.dromara.common.encrypt.config;
 
-import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
 import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.ibatis.io.Resources;
-import org.dromara.common.encrypt.annotation.EncryptField;
 import org.dromara.common.encrypt.core.EncryptorManager;
 import org.dromara.common.encrypt.interceptor.MybatisDecryptInterceptor;
 import org.dromara.common.encrypt.interceptor.MybatisEncryptInterceptor;
@@ -14,20 +11,7 @@
 import org.springframework.boot.autoconfigure.AutoConfiguration;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.context.annotation.Bean;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.core.io.support.ResourcePatternResolver;
-import org.springframework.core.type.ClassMetadata;
-import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
-import org.springframework.util.ClassUtils;
-
-import java.lang.reflect.Field;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import static org.springframework.util.StringUtils.tokenizeToStringArray;
 
 /**
  * 鍔犺В瀵嗛厤缃�
@@ -43,58 +27,10 @@
 
     @Autowired
     private EncryptorProperties properties;
-    @Autowired
-    private MybatisPlusProperties mybatisPlusProperties;
 
     @Bean
-    public EncryptorManager encryptorManager() {
-        Map<Class<?>, Set<Field>> fieldCache = scanEncryptClasses(mybatisPlusProperties.getTypeAliasesPackage());
-        return new EncryptorManager(fieldCache);
-    }
-
-    // 閫氳繃typeAliasesPackage璁剧疆鐨勬壂鎻忓寘,鏉ョ‘瀹氬摢浜涘疄浣撶被杩涜缂撳瓨
-    private Map<Class<?>, Set<Field>> scanEncryptClasses(String typeAliasesPackage) {
-        Map<Class<?>, Set<Field>> fieldCache = new HashMap<>();
-        try {
-            String[] packagePatternArray = tokenizeToStringArray(typeAliasesPackage,
-                ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS);
-            for (String packagePattern : packagePatternArray) {
-                Resource[] resources = new PathMatchingResourcePatternResolver().getResources(ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
-                    + ClassUtils.convertClassNameToResourcePath(packagePattern) + "/**/*.class");
-                for (Resource resource : resources) {
-                    ClassMetadata classMetadata = new CachingMetadataReaderFactory().getMetadataReader(resource).getClassMetadata();
-                    Class<?> clazz = Resources.classForName(classMetadata.getClassName());
-                    Set<Field> encryptFieldSet = getEncryptFieldSetFromClazz(clazz);
-                    if(CollectionUtil.isNotEmpty(encryptFieldSet)) {
-                        fieldCache.put(clazz, encryptFieldSet);
-                    }
-                }
-            }
-        }catch (Exception e) {
-            log.error("鍒濆鍖栨暟鎹畨鍏ㄧ紦瀛樻椂鍑洪敊:{}", e.getMessage());
-        }
-        return fieldCache;
-    }
-
-    // 鑾峰緱涓�涓被鐨勫姞瀵嗗瓧娈甸泦鍚�
-    private Set<Field> getEncryptFieldSetFromClazz(Class<?> clazz) {
-        Set<Field> fieldSet = new HashSet<>();
-        // 鍒ゆ柇clazz濡傛灉鏄帴鍙�,鍐呴儴绫�,鍖垮悕绫诲氨鐩存帴杩斿洖
-        if (clazz.isInterface() || clazz.isMemberClass() || clazz.isAnonymousClass()) {
-            return fieldSet;
-        }
-        while (clazz != null) {
-            Field[] fields = clazz.getDeclaredFields();
-            fieldSet.addAll(Arrays.asList(fields));
-            clazz = clazz.getSuperclass();
-        }
-        fieldSet = fieldSet.stream().filter(field ->
-                field.isAnnotationPresent(EncryptField.class) && field.getType() == String.class)
-            .collect(Collectors.toSet());
-        for (Field field : fieldSet) {
-            field.setAccessible(true);
-        }
-        return fieldSet;
+    public EncryptorManager encryptorManager(MybatisPlusProperties mybatisPlusProperties) {
+        return new EncryptorManager(mybatisPlusProperties.getTypeAliasesPackage());
     }
 
     @Bean

--
Gitblit v1.9.3