Commit 03a222a35722a68435614bbe0a6bc588056183d0

Authored by zhangdaiscott
1 parent 09872bd0

还原long精度改造,导致了两个严重问题

1表单的日期字段,不能显示日期格式
2前端分页插件报错
jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/WebMvcConfiguration.java
1 1 package org.jeecg.config;
2 2  
3   -import com.fasterxml.jackson.databind.DeserializationFeature;
4 3 import com.fasterxml.jackson.databind.ObjectMapper;
5 4 import com.fasterxml.jackson.databind.module.SimpleModule;
6 5 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
7 6 import org.springframework.beans.factory.annotation.Value;
8 7 import org.springframework.boot.actuate.trace.http.InMemoryHttpTraceRepository;
9   -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
10 8 import org.springframework.context.annotation.Bean;
11 9 import org.springframework.context.annotation.Conditional;
12 10 import org.springframework.context.annotation.Configuration;
13   -import org.springframework.context.annotation.Primary;
14   -import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
  11 +import org.springframework.http.converter.HttpMessageConverter;
  12 +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
15 13 import org.springframework.web.cors.CorsConfiguration;
16 14 import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
17 15 import org.springframework.web.filter.CorsFilter;
... ... @@ -19,6 +17,8 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
19 17 import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
20 18 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
21 19  
  20 +import java.util.List;
  21 +
22 22 /**
23 23 * Spring Boot 2.0 解决跨域问题
24 24 *
... ... @@ -71,24 +71,20 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
71 71 return new CorsFilter(urlBasedCorsConfigurationSource);
72 72 }
73 73  
74   -
75 74 /**
76   - * 序列换成json时,将所有的long变成string
77   - * js中long过长精度丢失
78   - */
79   - @Bean
80   - @Primary
81   - @ConditionalOnMissingBean(ObjectMapper.class)
82   - public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
  75 + * 添加Long转json精度丢失的配置
  76 + * @Return: void
  77 + */
  78 + @Override
  79 + public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  80 + MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
83 81 ObjectMapper objectMapper = new ObjectMapper();
84 82 SimpleModule simpleModule = new SimpleModule();
85   - //忽略在json字符串中存在,在java类中不存在字段,防止错误。
86   - objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
87   - objectMapper.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true);
88 83 simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
89 84 simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
90 85 objectMapper.registerModule(simpleModule);
91   - return objectMapper;
  86 + jackson2HttpMessageConverter.setObjectMapper(objectMapper);
  87 + converters.add(jackson2HttpMessageConverter);
92 88 }
93 89  
94 90 /**
... ...
jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/handler/MySwaggerResourceProvider.java
1 1 package org.jeecg.handler;
2 2  
3   -import lombok.extern.slf4j.Slf4j;
  3 +import java.util.ArrayList;
  4 +import java.util.HashSet;
  5 +import java.util.List;
  6 +import java.util.Set;
  7 +
4 8 import org.springframework.beans.factory.annotation.Autowired;
5 9 import org.springframework.beans.factory.annotation.Value;
6 10 import org.springframework.cloud.gateway.route.RouteLocator;
  11 +import org.springframework.context.annotation.Primary;
7 12 import org.springframework.stereotype.Component;
  13 +
  14 +import lombok.extern.slf4j.Slf4j;
8 15 import springfox.documentation.swagger.web.SwaggerResource;
9 16 import springfox.documentation.swagger.web.SwaggerResourcesProvider;
10 17  
11   -import java.util.*;
12   -
13 18 /**
14 19 * 聚合各个服务的swagger接口
15 20 */
16 21 @Component
17 22 @Slf4j
  23 +@Primary
18 24 public class MySwaggerResourceProvider implements SwaggerResourcesProvider {
19 25 /**
20 26 * swagger2默认的url后缀
... ... @@ -46,7 +52,7 @@ public class MySwaggerResourceProvider implements SwaggerResourcesProvider {
46 52 .filter(route -> !self.equals(route.getUri().getHost()))
47 53 .subscribe(route -> routeHosts.add(route.getUri().getHost()));
48 54  
49   - // 记录已经添加过的server,存在同一个应用注册了多个服务在eureka
  55 + // 记录已经添加过的server,存在同一个应用注册了多个服务在nacos
50 56 Set<String> dealed = new HashSet<>();
51 57 routeHosts.forEach(instance -> {
52 58 // 拼接url
... ...