From 0e5ac6c6932c315b5c39efac01d3fcee4c234cef Mon Sep 17 00:00:00 2001 From: TommyLemon Date: Mon, 5 Oct 2026 13:56:56 +0800 Subject: [PATCH 1/2] =?UTF-8?q?Java:=20MultiDataSource=20=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=20APIJSON,=20framework,=20=E8=87=AA=E8=BA=AB=208.3.2,?= =?UTF-8?q?=20fastjson2=202.0.65,=20apijson-fastjson2=201.3.3,=20apijson-j?= =?UTF-8?q?ackson=201.3.2,=20=E6=96=B0=E5=A2=9E=20js=20=E5=BC=95=E6=93=8E?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=20nashornjs,=20graalvmjs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../APIJSONBoot-MultiDataSource/pom.xml | 36 +++++++++++++------ .../java/apijson/boot/DemoApplication.java | 4 +++ .../java/apijson/boot/DemoController.java | 4 +-- .../java/apijson/boot/FileController.java | 2 +- .../java/apijson/demo/DemoFunctionParser.java | 4 ++- .../main/java/apijson/demo/DemoParser.java | 10 +++--- .../main/java/apijson/demo/DemoSQLConfig.java | 2 +- .../main/java/apijson/demo/model/Privacy.java | 6 ++-- .../main/java/apijson/demo/model/User.java | 5 +-- .../main/java/apijson/demo/model/Verify.java | 6 ++-- 10 files changed, 53 insertions(+), 26 deletions(-) diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/pom.xml b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/pom.xml index edaf396b..08f48064 100755 --- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/pom.xml +++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/pom.xml @@ -5,7 +5,7 @@ apijson.boot apijson-boot-multi-datasource - 8.3.0 + 8.3.2 jar APIJSONBoot-MultiDataSource @@ -26,10 +26,10 @@ com.alibaba.fastjson2 fastjson2 - 2.0.64 + 2.0.65 - + jakarta.servlet jakarta.servlet-api @@ -40,17 +40,17 @@ com.github.TommyLemon unitauto-java - 3.0.5 + 3.1.0 com.github.TommyLemon unitauto-jar - 3.0.5 + 3.1.0 io.github.classgraph classgraph - 4.8.146 + 4.8.196 @@ -59,26 +59,42 @@ com.github.Tencent APIJSON - 8.3.0 + 8.3.2 com.github.APIJSON apijson-framework - 8.3.0 + 8.3.2 com.github.APIJSON apijson-fastjson2 - 1.3.0 + 1.3.3 - + + + + + + + + + + + + + + + + + org.apache.commons commons-text diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoApplication.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoApplication.java index 3d47f2a3..d9f4b1a6 100755 --- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoApplication.java +++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoApplication.java @@ -19,6 +19,7 @@ import apijson.fastjson2.APIJSONCreator; import apijson.fastjson2.APIJSONVerifier; import apijson.fastjson2.APIJSONSQLConfig; +import apijson.orm.AbstractFunctionParser; import apijson.orm.AbstractParser; import apijson.orm.AbstractVerifier; import com.alibaba.fastjson.JSONObject; @@ -85,12 +86,15 @@ public static void main(String[] args) throws Exception { e.printStackTrace(); } + com.alibaba.fastjson2.JSON.configReaderDateFormat("yyyy-MM-dd HH:mm:ss"); + // FIXME 不要开放给项目组后端之外的任何人使用 UnitAuto(强制登录鉴权)!!!如果不需要单元测试则移除相关代码或 unitauto.Log.DEBUG = false; // 上线生产环境前改为 false,可不输出 APIJSONORM 的日志 以及 SQLException 的原始(敏感)信息 //unitauto.Log.DEBUG = true; Log.DEBUG = true; // 是否开启调试模式(打印详细日志、返回详细调试信息等) AbstractParser.IS_PRINT_BIG_LOG = true; // 是否打印大日志 APIJSONVerifier.ENABLE_APIJSON_ROUTER = true; // apijson-framework 已集成字段插件 apijson-router,是否开启 接口路由 模式,支持简单接口转为 APIJSON JSON + //AbstractFunctionParser.ENABLE_SCRIPT_FUNCTION = true; // 是否启用脚本形式的远程函数 //APIJSONParser.IS_START_FROM_1 = true; // 分页页码是否从 1 开始,true - 从 1 开始;false - 从 0 开始 APIJSONSQLConfig.ENABLE_COLUMN_CONFIG = false; // apijson-framework 已集成字段插件 apijson-column,支持 !key 反选字段 和 字段名映射 APIJSONApplication.init(); diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java index 0edef127..cf11d01d 100644 --- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java +++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java @@ -717,7 +717,7 @@ public JSONObject headVerify(int type, String phone, String email, String code) } //验证码过期 - long time = BaseModel.getTimeMillis(verify.getDate()); + long time = BaseModel.toTimeMillis(verify.getDate()); long now = System.currentTimeMillis(); if (now > 60*1000 + time) { new DemoParser(DELETE, false).parseResponse( @@ -2487,7 +2487,7 @@ public String execute(@RequestBody String request, HttpSession session) { } sqlRest = sqlRest.substring(isEq ? 1 : "IN(".length()).trim(); - int endInd = isEq && ! sqlRest.startsWith("'") ? -1 : sqlRest.indexOf(isEq ? "'" : ")", 1); + int endInd = -1; // isEq && ! sqlRest.startsWith("'") ? -1 : sqlRest.indexOf(isEq ? "'" : ")", 1); if (isEq && ! sqlRest.startsWith("'")) { for (int i = 0; i < sqlRest.length(); i++) { char c = sqlRest.charAt(i); diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/FileController.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/FileController.java index c797c08f..cfe3182f 100755 --- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/FileController.java +++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/FileController.java @@ -424,7 +424,7 @@ public ResponseEntity downloadCVReport(@PathVariable(name = "id") String headers.setContentLength(body.length()); } - String renderStr = demoController.sendRequest(session, HttpMethod.POST, "http://localhost:3003/cv/render", body, headers); + String renderStr = demoController.sendRequest(session, HttpMethod.POST, "http://localhost:3003/cv/render", body, null, headers); renderStr = StringUtil.trim(renderStr); if (renderStr.length() > 100) { File renderFile = new File(fileUploadRootDir + nfn); diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoFunctionParser.java index c5e79c5b..773837ab 100644 --- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoFunctionParser.java +++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoFunctionParser.java @@ -44,7 +44,9 @@ public class DemoFunctionParser extends APIJSONFunctionParser { public static final String TAG = "DemoFunctionParser"; static { - SCRIPT_EXECUTOR_MAP.put("js", new JavaScriptExecutor()); + //SCRIPT_EXECUTOR_MAP.put("js", new JavaScriptExecutor()); + //SCRIPT_EXECUTOR_MAP.put("graaljs", new JavaScriptExecutor()); + //SCRIPT_EXECUTOR_MAP.put("nashorn", new JavaScriptExecutor()); } public DemoFunctionParser() { diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoParser.java index ebb3ed28..81a49043 100644 --- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoParser.java +++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoParser.java @@ -66,7 +66,7 @@ public DemoParser setNeedVerify(boolean needVerify) { // return true; // } - private int maxQueryCount = 100; + private int maxQueryCount = 200; // 可重写来设置最大查询数量 @Override public int getMaxQueryCount() { @@ -83,10 +83,10 @@ public int getMaxObjectCount() { return getMaxUpdateCount(); } - //@Override - //public int getMaxSQLCount() { - // return getMaxUpdateCount(); - //} + @Override + public int getMaxSQLCount() { + return 500;// getMaxUpdateCount(); + } @Override public JSONObject parseResponse(JSONObject request) { diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoSQLConfig.java index acf3d453..1ba6de56 100755 --- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoSQLConfig.java +++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/DemoSQLConfig.java @@ -210,7 +210,7 @@ public String getUserIdKey(String database, String datasource, String namespace, @Override public String gainDBVersion() { if (isMySQL()) { -// return "5.7.22"; //TODO 改成你自己的 MySQL 或 PostgreSQL 数据库版本号 //MYSQL 8 和 7 使用的 JDBC 配置不一样 + //return "5.7.22"; //TODO 改成你自己的 MySQL 或 PostgreSQL 数据库版本号 //MYSQL 8 和 7 使用的 JDBC 配置不一样 return "8.0.11"; //TODO 改成你自己的 MySQL 或 PostgreSQL 数据库版本号 //MYSQL 8 和 7 使用的 JDBC 配置不一样 } if (isPostgreSQL()) { diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/Privacy.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/Privacy.java index e4b8dbe0..2f5b82c0 100644 --- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/Privacy.java +++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/Privacy.java @@ -23,6 +23,8 @@ import apijson.MethodAccess; import apijson.framework.BaseModel; +import java.util.Date; + /** * TODO 漏洞:如果GETS允许CONTACT,则CONTACT能看到自己的余额,tag可以不是Privacy-circle。 * 所以需要在Request表中增加role字段。或者干脆这里GETS只允许OWNER, ADMIN,需要用其它角色查时走独立接口。 @@ -35,8 +37,8 @@ GETS = {OWNER, ADMIN}, POST = {UNKNOWN, ADMIN}, DELETE = {ADMIN} - ) -public class Privacy extends BaseModel { +) +public class Privacy extends BaseModel { private static final long serialVersionUID = 1L; public static final int PASSWORD_TYPE_LOGIN = 0; diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/User.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/User.java index 1ea89000..138bbd86 100644 --- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/User.java +++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/User.java @@ -17,6 +17,7 @@ import static apijson.orm.AbstractVerifier.ADMIN; import static apijson.orm.AbstractVerifier.UNKNOWN; +import java.util.Date; import java.util.List; import apijson.MethodAccess; @@ -29,8 +30,8 @@ @MethodAccess( POST = {UNKNOWN, ADMIN}, DELETE = {ADMIN} - ) -public class User extends BaseModel implements Visitor { +) +public class User extends BaseModel implements Visitor { private static final long serialVersionUID = 1L; public static final int SEX_MAIL = 0; diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/Verify.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/Verify.java index 317f97f3..7050add9 100644 --- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/Verify.java +++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/demo/model/Verify.java @@ -24,6 +24,8 @@ import apijson.MethodAccess; import apijson.framework.BaseModel; +import java.util.Date; + /**验证码 * @author Lemon */ @@ -35,8 +37,8 @@ POST = {UNKNOWN, LOGIN, CONTACT, CIRCLE, OWNER, ADMIN}, PUT = {ADMIN}, DELETE = {ADMIN} - ) -public class Verify extends BaseModel { +) +public class Verify extends BaseModel { private static final long serialVersionUID = 1L; public static final int TYPE_LOGIN = 0; //登录 From a90ed55a4f7b15e38eaab452e2ef9e9a68601d52 Mon Sep 17 00:00:00 2001 From: TommyLemon Date: Mon, 5 Oct 2026 14:03:14 +0800 Subject: [PATCH 2/2] =?UTF-8?q?Java:=20APIJSONDemo-Jackson=20=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=20APIJSON,=20framework,=20=E8=87=AA=E8=BA=AB=208.3.0?= =?UTF-8?q?=EF=BC=8Capijson-jackson=201.3.0=EF=BC=8Cmaven-compiler-plugin?= =?UTF-8?q?=203.16.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- APIJSON-Java-Server/APIJSONDemo-Jackson/pom.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson/pom.xml b/APIJSON-Java-Server/APIJSONDemo-Jackson/pom.xml index 32c0bb05..cd69c834 100755 --- a/APIJSON-Java-Server/APIJSONDemo-Jackson/pom.xml +++ b/APIJSON-Java-Server/APIJSONDemo-Jackson/pom.xml @@ -5,7 +5,7 @@ apijson.demo apijson-demo - 8.2.0 + 8.3.0 APIJSONDemo Demo project for Testing APIJSON Server based on Jackson and SpringBoot @@ -24,12 +24,12 @@ com.github.Tencent APIJSON - 8.2.0 + 8.3.0 com.github.APIJSON apijson-framework - 8.2.0 + 8.3.0 jakarta.servlet @@ -39,7 +39,7 @@ com.github.APIJSON apijson-jackson - 1.2.1 + 1.3.0 com.fasterxml.jackson.core @@ -102,7 +102,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 + 3.16.0 17 17