Commit 2aa208f44139270604724f2c505198829be1e2d8

Authored by gaibu
1 parent 6593ec42

feat: 脱敏组件代码规范更新

yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/DesensitizationHandlerFactory.java deleted
1   -package cn.iocoder.yudao.framework.desensitize.core.base;
2   -
3   -import cn.hutool.Hutool;
4   -import cn.hutool.core.lang.Singleton;
5   -import cn.hutool.core.util.ReflectUtil;
6   -import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler;
7   -
8   -import java.util.Map;
9   -import java.util.concurrent.ConcurrentHashMap;
10   -
11   -/**
12   - * 脱敏处理器 Holder
13   - *
14   - * @author gaibu
15   - */
16   -public class DesensitizationHandlerFactory {
17   -
18   - /**
19   - * handler 缓存,默认初始化内置的处理器
20   - */
21   - private static final Map<Class<? extends DesensitizationHandler>, DesensitizationHandler> HANDLER_MAP = new ConcurrentHashMap<Class<? extends DesensitizationHandler>, DesensitizationHandler>();
22   -
23   - // TODO @唐:可以考虑,使用 hutool 提供的 Singleton.get()
24   - public static DesensitizationHandler getDesensitizationHandler(Class<? extends DesensitizationHandler> clazz) {
25   - DesensitizationHandler handler = HANDLER_MAP.get(clazz);
26   - if (handler != null) {
27   - return handler;
28   - }
29   - // 不存在,则进行创建
30   - synchronized (DesensitizationHandlerFactory.class) {
31   - handler = HANDLER_MAP.get(clazz);
32   - // 双重校验锁
33   - if (handler != null) {
34   - return handler;
35   - }
36   - handler = ReflectUtil.newInstanceIfPossible(clazz);
37   - HANDLER_MAP.put(clazz, handler);
38   - }
39   - return handler;
40   - }
41   -
42   -}
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java
1 1 package cn.iocoder.yudao.framework.desensitize.core.base.serializer;
2 2  
3 3 import cn.hutool.core.annotation.AnnotationUtil;
  4 +import cn.hutool.core.lang.Singleton;
4 5 import cn.hutool.core.util.ArrayUtil;
5 6 import cn.hutool.core.util.ReflectUtil;
6 7 import cn.hutool.core.util.StrUtil;
7 8 import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
8 9 import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler;
9   -import cn.iocoder.yudao.framework.desensitize.core.base.DesensitizationHandlerFactory;
10 10 import com.fasterxml.jackson.core.JsonGenerator;
11 11 import com.fasterxml.jackson.databind.BeanProperty;
12   -import com.fasterxml.jackson.databind.JsonMappingException;
13 12 import com.fasterxml.jackson.databind.JsonSerializer;
14 13 import com.fasterxml.jackson.databind.SerializerProvider;
15 14 import com.fasterxml.jackson.databind.ser.ContextualSerializer;
... ... @@ -47,7 +46,7 @@ public class StringDesensitizeSerializer extends StdSerializer&lt;String&gt; implement
47 46 }
48 47 // 创建一个 StringDesensitizeSerializer 对象,使用 DesensitizeBy 对应的处理器
49 48 StringDesensitizeSerializer serializer = new StringDesensitizeSerializer();
50   - serializer.setDesensitizationHandler(DesensitizationHandlerFactory.getDesensitizationHandler(annotation.handler()));
  49 + serializer.setDesensitizationHandler(Singleton.get(annotation.handler()));
51 50 return serializer;
52 51 }
53 52  
... ...
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/Email.java renamed to yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/EmailDesensitize.java
... ... @@ -10,7 +10,6 @@ import java.lang.annotation.Retention;
10 10 import java.lang.annotation.RetentionPolicy;
11 11 import java.lang.annotation.Target;
12 12  
13   -// TODO @唐:名字还是 Email=》EmailDesensitize 合适一点,避免和 Validator 的注解有点冲突
14 13 /**
15 14 * 邮箱脱敏注解
16 15 *
... ... @@ -21,7 +20,7 @@ import java.lang.annotation.Target;
21 20 @Retention(RetentionPolicy.RUNTIME)
22 21 @JacksonAnnotationsInside
23 22 @DesensitizeBy(handler = EmailDesensitizationHandler.class)
24   -public @interface Email {
  23 +public @interface EmailDesensitize {
25 24  
26 25 /**
27 26 * 匹配的正则表达式
... ...
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java
1 1 package cn.iocoder.yudao.framework.desensitize.core.regex.handler;
2 2  
3   -import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Email;
  3 +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.EmailDesensitize;
4 4  
5 5 /**
6   - * {@link Email} 的脱敏处理器
  6 + * {@link EmailDesensitize} 的脱敏处理器
7 7 *
8 8 * @author gaibu
9 9 */
10   -public class EmailDesensitizationHandler extends AbstractRegexDesensitizationHandler<Email> {
  10 +public class EmailDesensitizationHandler extends AbstractRegexDesensitizationHandler<EmailDesensitize> {
11 11  
12 12 @Override
13   - String getRegex(Email annotation) {
  13 + String getRegex(EmailDesensitize annotation) {
14 14 return annotation.regex();
15 15 }
16 16  
17 17 @Override
18   - String getReplacer(Email annotation) {
  18 + String getReplacer(EmailDesensitize annotation) {
19 19 return annotation.replacer();
20 20 }
21 21  
... ...
yudao-framework/yudao-spring-boot-starter-desensitize/src/test/java/cn/iocoder/yudao/framework/desensitize/core/DesensitizeTest.java
1 1 package cn.iocoder.yudao.framework.desensitize.core;
2 2  
3 3 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
4   -import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Email;
  4 +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.EmailDesensitize;
5 5 import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Regex;
6 6 import cn.iocoder.yudao.framework.desensitize.core.annotation.Address;
7 7 import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.BankCard;
... ... @@ -85,7 +85,7 @@ public class DesensitizeTest extends BaseMockitoUnitTest {
85 85 private String slider2;
86 86 @Slider(prefixKeep = 10)
87 87 private String slider3;
88   - @Email
  88 + @EmailDesensitize
89 89 private String email;
90 90 @Regex(regex = "芋道源码", replacer = "*")
91 91 private String regex;
... ...