diff --git a/README.md b/README.md index df46c12..6819255 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ![image](https://img.shields.io/badge/SpringBoot2-%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%85-blue.svg) ![image](https://img.shields.io/badge/Freemarker-%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%85-blue.svg) ![image](https://img.shields.io/badge/CodeGenerator-%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%85-blue.svg) -[![Build Status](https://travis-ci.org/moshowgame/SpringBootCodeGenerator.svg?branch=master)](https://travis-ci.org/moshowgame/SpringBootCodeGenerator) +[![Java CI with Maven](https://github.com/moshowgame/SpringBootCodeGenerator/actions/workflows/maven.yml/badge.svg)](https://github.com/moshowgame/SpringBootCodeGenerator/actions/workflows/maven.yml) # Author >powered by `Moshow郑锴(大狼狗)` , [https://zhengkai.blog.csdn.net](https://zhengkai.blog.csdn.net) @@ -73,10 +73,10 @@ # Update Logs | 更新日期 | 更新内容 | |:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 2024.04.21 | 推出JDK11分支,支持JDK8/JDK11/JDK17等版本,兼容性较好但维护速度较慢,为了更好兼容旧机器和旧环境 -| 2024.04.20 | 修复CDN版本cdn.staticfile.org域名备份失败问题,已同步更新到cdn.staticfile.net(本地版本则不受影响) -| 2024.01.26 | 修复大写下滑线列名转驼峰问题(感谢@Nisus-Liu -的PR) | +| 2024.04.22 | [Java CI with Maven](https://github.com/moshowgame/SpringBootCodeGenerator/actions/workflows/maven.yml) 更新
SpringBoot升级到3.2.5
FastJSON升级到FastJSON2.0.49| +| 2024.04.21 | 推出JDK11分支,支持JDK8/JDK11/JDK17等版本,兼容性较好但维护速度较慢,为了更好兼容旧机器和旧环境| +| 2024.04.20 | 修复CDN版本cdn.staticfile.org域名备份失败问题,已同步更新到cdn.staticfile.net(本地版本则不受影响)| +| 2024.01.26 | 修复大写下滑线列名转驼峰问题(感谢@Nisus-Liu的PR)| | 2023.10.22 | 工具站CDN更新。 | | 2023.08.31 | (感谢@Nisus-Liu的PR)
fix 驼峰列名转命名风格错误问题
增强转下划线命名风格, 对原始风格不敏感. 支持各种命名风格的列名 to 下划线
增加 NonCaseString 大小写不敏感字符串包装类, 简化编码
几点代码小优化。 | | 2023.07.11 | 安全更新,正式支持SpringBoot3,javax升级到jakarta。 | @@ -174,6 +174,13 @@ 2. COPY并编写freemarker模板文件`.ftl` 3. 修改`template.json`文件,新增模板信息,页面可动态加载 +# Upgrade Issue Resolution 升级问题解决方案 +- 如果你最近也在升级FastJson到FastJson2版本,而跟我一样也遇到了FastJsonHttpMessageConverter找不到类问题以及FastJsonConfig找不到问题,那么恭喜你,看完本文,安装完fastjson2、fastjson2-extension、fastjson2-extension-spring6这三个类库,你就可以成功使用新版FastJson2了。 + [FastJson2中FastJsonHttpMessageConverter找不到类问题](https://blog.csdn.net/moshowgame/article/details/138013669) + +- 当项目从2.7.x的springboot升级到3.0.x的时候,遇到一个问题“java: 程序包javax.servlet.http不存在” 问题: + [java: 程序包javax.servlet.http不存在](https://zhengkai.blog.csdn.net/article/details/131362304) + diff --git a/generator-web/src/main/java/com/softdev/system/generator/config/WebMvcConfig.java b/generator-web/src/main/java/com/softdev/system/generator/config/WebMvcConfig.java index f7a573c..3797d68 100644 --- a/generator-web/src/main/java/com/softdev/system/generator/config/WebMvcConfig.java +++ b/generator-web/src/main/java/com/softdev/system/generator/config/WebMvcConfig.java @@ -1,7 +1,8 @@ package com.softdev.system.generator.config; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; + +// import com.alibaba.fastjson.support.config.FastJsonConfig; +// import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; import jakarta.servlet.DispatcherType; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; @@ -12,8 +13,14 @@ import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import com.alibaba.fastjson2.JSONReader; +import com.alibaba.fastjson2.JSONWriter; +import com.alibaba.fastjson2.support.config.FastJsonConfig; +import com.alibaba.fastjson2.support.spring6.http.converter.FastJsonHttpMessageConverter; + import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** * 2019-2-11 liutf WebMvcConfig 整合 cors 和 SpringMvc MessageConverter @@ -36,25 +43,43 @@ public class WebMvcConfig implements WebMvcConfigurer { return registration; } + // @Override + // public void configureMessageConverters(List> converters) { + // converters.clear(); + // //FastJsonHttpMessageConverter + // FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); + + // List fastMediaTypes = new ArrayList<>(); + // fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); + // fastConverter.setSupportedMediaTypes(fastMediaTypes); + + // FastJsonConfig fastJsonConfig = new FastJsonConfig(); + // fastJsonConfig.setCharset(StandardCharsets.UTF_8); + // fastConverter.setFastJsonConfig(fastJsonConfig); + + // //StringHttpMessageConverter + // StringHttpMessageConverter stringConverter = new StringHttpMessageConverter(); + // stringConverter.setDefaultCharset(StandardCharsets.UTF_8); + // stringConverter.setSupportedMediaTypes(fastMediaTypes); + // converters.add(stringConverter); + // converters.add(fastConverter); + // } + /** + * FASTJSON2升级 by https://zhengkai.blog.csdn.net/ + * https://blog.csdn.net/moshowgame/article/details/138013669 + */ @Override public void configureMessageConverters(List> converters) { - //FastJsonHttpMessageConverter - FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); - - List fastMediaTypes = new ArrayList<>(); - fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); - fastConverter.setSupportedMediaTypes(fastMediaTypes); - - FastJsonConfig fastJsonConfig = new FastJsonConfig(); - fastJsonConfig.setCharset(StandardCharsets.UTF_8); - fastConverter.setFastJsonConfig(fastJsonConfig); - - //StringHttpMessageConverter - StringHttpMessageConverter stringConverter = new StringHttpMessageConverter(); - stringConverter.setDefaultCharset(StandardCharsets.UTF_8); - stringConverter.setSupportedMediaTypes(fastMediaTypes); - converters.add(stringConverter); - converters.add(fastConverter); + FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); + //自定义配置... + FastJsonConfig config = new FastJsonConfig(); + config.setDateFormat("yyyy-MM-dd HH:mm:ss"); + config.setReaderFeatures(JSONReader.Feature.FieldBased, JSONReader.Feature.SupportArrayToBean); + config.setWriterFeatures(JSONWriter.Feature.WriteMapNullValue, JSONWriter.Feature.PrettyFormat); + converter.setFastJsonConfig(config); + converter.setDefaultCharset(StandardCharsets.UTF_8); + converter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_JSON)); + converters.add(0, converter); } } diff --git a/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java b/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java index 5a294dc..a480b81 100644 --- a/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java +++ b/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java @@ -1,8 +1,8 @@ package com.softdev.system.generator.service; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.softdev.system.generator.entity.TemplateConfig; import com.softdev.system.generator.util.FreemarkerUtil; import com.softdev.system.generator.util.MapUtil; diff --git a/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java b/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java index 3e30dcc..0f46dac 100644 --- a/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java +++ b/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java @@ -1,8 +1,8 @@ package com.softdev.system.generator.util; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.softdev.system.generator.entity.ClassInfo; import com.softdev.system.generator.entity.FieldInfo; import com.softdev.system.generator.entity.NonCaseString; diff --git a/pom.xml b/pom.xml index 09ae37a..16071f8 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.8 + 3.2.5 @@ -46,10 +46,28 @@ - + + + + + com.alibaba.fastjson2 + fastjson2 + 2.0.49 + + + com.alibaba.fastjson2 + fastjson2-extension + 2.0.49 + + + + com.alibaba.fastjson2 + fastjson2-extension-spring6 + 2.0.49 @@ -85,7 +103,7 @@ org.projectlombok lombok - 1.18.22 + 1.18.32 @@ -95,23 +113,30 @@ - + + + + jakarta.xml.bind + jakarta.xml.bind-api + 4.0.2 + org.apache.commons commons-lang3 - 3.12.0 + 3.14.0 commons-io commons-io - 2.11.0 + 2.16.1