瀏覽代碼

优化枚举字典反序列化

zhou-hao 3 年之前
父節點
當前提交
913dfa5dd8

+ 14 - 16
hsweb-starter/src/main/java/org/hswebframework/web/starter/jackson/CustomCodecsAutoConfiguration.java

@@ -21,13 +21,14 @@ import org.springframework.http.codec.CodecConfigurer;
 @AutoConfigureAfter(JacksonAutoConfiguration.class)
 public class CustomCodecsAutoConfiguration {
 
-	@Configuration(proxyBeanMethods = false)
-	@ConditionalOnClass(ObjectMapper.class)
-	static class JacksonDecoderConfiguration {
+    @Configuration(proxyBeanMethods = false)
+    @ConditionalOnClass(ObjectMapper.class)
+    static class JacksonDecoderConfiguration {
 
         @Bean
         @Order(1)
         @ConditionalOnBean(ObjectMapper.class)
+        @SuppressWarnings("all")
         CodecCustomizer jacksonDecoderCustomizer(EntityFactory entityFactory, ObjectMapper objectMapper) {
             //	objectMapper.setTypeFactory(new CustomTypeFactory(entityFactory));
             SimpleModule module = new SimpleModule();
@@ -37,26 +38,23 @@ public class CustomCodecsAutoConfiguration {
                                                                 DeserializationConfig config,
                                                                 BeanDescription beanDesc) {
                     JsonDeserializer<?> deser = null;
-                    if (type.isEnum()) {
-                        if (EnumDict.class.isAssignableFrom(type)) {
-                            deser = new EnumDict.EnumDictJSONDeserializer(val -> EnumDict
-                                    .find((Class) type, val)
-                                    .orElse(null));
-                        }
+                    if (type.isEnum() && EnumDict.class.isAssignableFrom(type)) {
+                        deser = new EnumDict.EnumDictJSONDeserializer(val -> EnumDict
+                                .find((Class) type, val)
+                                .orElse(null));
                     }
                     return deser;
                 }
             });
             objectMapper.registerModule(module);
 
+            return (configurer) -> {
+                CodecConfigurer.DefaultCodecs defaults = configurer.defaultCodecs();
+                defaults.jackson2JsonDecoder(new CustomJackson2JsonDecoder(entityFactory, objectMapper));
+            };
+        }
 
-			return (configurer) -> {
-				CodecConfigurer.DefaultCodecs defaults = configurer.defaultCodecs();
-				defaults.jackson2JsonDecoder(new CustomJackson2JsonDecoder(entityFactory,objectMapper));
-			};
-		}
-
-	}
+    }
 
 
 }