Skip to content

Commit ee020d3

Browse files
committed
Java:所有 Demo 升级自身, APIJSON, apijson-framework 版本至 5.1.0,升级 UnitAuto 至 2.7.2
1 parent ba1f96a commit ee020d3

33 files changed

+295
-180
lines changed

APIJSON-Java-Server/APIJSONBoot-MultiDataSource/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55

66
<groupId>apijson.boot</groupId>
7-
<artifactId>apijson-boot</artifactId>
7+
<artifactId>apijson-boot-multi-datasource</artifactId>
88
<version>5.1.0</version>
99
<!-- <packaging>jar</packaging> -->
1010

APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -228,12 +228,13 @@ public String delete(@RequestBody String request, HttpSession session) {
228228

229229
// 以上接口对应的简版接口,格式为 {method}/{tag}?format=true&@explain=true.. <<<<<<<<<<<<<<<<<<<<<<<<<
230230

231-
232-
/**增删改查统一入口,这个一个方法可替代以下 7 个方法,牺牲一些路由解析性能来提升一点开发效率
233-
* @param request 只用String,避免encode后未decode
231+
/**增删改查统一接口,这个一个接口可替代 7 个万能通用接口,牺牲一些路由解析性能来提升一点开发效率
232+
* @param method
233+
* @param tag
234+
* @param params
235+
* @param request
234236
* @param session
235237
* @return
236-
* @see {@link RequestMethod#DELETE}
237238
*/
238239
@PostMapping("crud/{method}/{tag}") // 直接 {method}/{tag} 或 apijson/{method}/{tag} 会和内置网页的路由有冲突
239240
@Override
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

APIJSON-Java-Server/APIJSONBoot/pom.xml

+7-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>apijson.boot</groupId>
77
<artifactId>apijson-boot</artifactId>
8-
<version>5.0.0</version>
8+
<version>5.1.0</version>
99
<!-- <packaging>jar</packaging> -->
1010

1111
<name>APIJSONBoot</name>
@@ -32,17 +32,16 @@
3232
<version>4.0.1</version>
3333
</dependency>
3434

35-
<!-- 单元测试:可使用 libs 目录的 unitauto-java.jar 和 unitauto-jar.jar 来替代,两种方式二选一
36-
<<<<<<<<< -->
35+
<!-- 单元测试:可使用 libs 目录的 unitauto-java.jar 和 unitauto-jar.jar 来替代,两种方式二选一 <<<<<<<<< -->
3736
<dependency>
3837
<groupId>com.github.TommyLemon</groupId>
3938
<artifactId>unitauto-java</artifactId>
40-
<version>2.6.4</version>
39+
<version>2.7.2</version>
4140
</dependency>
4241
<dependency>
4342
<groupId>com.github.TommyLemon</groupId>
4443
<artifactId>unitauto-jar</artifactId>
45-
<version>2.6.4</version>
44+
<version>2.7.2</version>
4645
</dependency>
4746
<dependency>
4847
<groupId>io.github.classgraph</groupId>
@@ -56,17 +55,17 @@
5655
<dependency>
5756
<groupId>com.github.Tencent</groupId>
5857
<artifactId>APIJSON</artifactId>
59-
<version>5.0.0</version>
58+
<version>5.1.0</version>
6059
</dependency>
6160
<dependency>
6261
<groupId>com.github.APIJSON</groupId>
6362
<artifactId>apijson-framework</artifactId>
64-
<version>5.0.0</version>
63+
<version>5.1.0</version>
6564
</dependency>
6665
<dependency>
6766
<groupId>com.github.APIJSON</groupId>
6867
<artifactId>apijson-column</artifactId>
69-
<version>1.2.0</version>
68+
<version>1.2.2</version>
7069
</dependency>
7170
<!-- 可使用 libs 目录的 apijson-orm.jar, apijson-framework.jar, apijson-column.jar 来替代,两种方式二选一 >>>>>>>>>> -->
7271

APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoApplication.java

+18-16
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,23 @@
7272
public class DemoApplication implements ApplicationContextAware, WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
7373
private static final String TAG = "DemoApplication";
7474

75+
public static void main(String[] args) throws Exception {
76+
SpringApplication.run(DemoApplication.class, args);
77+
78+
// FIXME 不要开放给项目组后端之外的任何人使用 UnitAuto(强制登录鉴权)!!!如果不需要单元测试则移除相关代码或 unitauto.Log.DEBUG = false;
79+
// 上线生产环境前改为 false,可不输出 APIJSONORM 的日志 以及 SQLException 的原始(敏感)信息
80+
unitauto.Log.DEBUG = Log.DEBUG = true;
81+
APIJSONParser.IS_PRINT_BIG_LOG = true;
82+
APIJSONApplication.init();
83+
}
84+
85+
// SpringBoot 2.x 自定义端口方式
86+
@Override
87+
public void customize(ConfigurableServletWebServerFactory server) {
88+
server.setPort(8080);
89+
}
90+
91+
7592
static {
7693
// APIJSON 配置 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
7794

@@ -81,7 +98,7 @@ public class DemoApplication implements ApplicationContextAware, WebServerFactor
8198
COMPILE_MAP.put("ID_CARD", StringUtil.PATTERN_ID_CARD);
8299

83100
// 使用本项目的自定义处理类
84-
APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
101+
APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator<Long>() {
85102

86103
@Override
87104
public Parser<Long> createParser() {
@@ -242,21 +259,6 @@ public boolean apply(Object object, String name, Object value) {
242259
}
243260

244261

245-
public static void main(String[] args) throws Exception {
246-
SpringApplication.run(DemoApplication.class, args);
247-
248-
// FIXME 不要开放给项目组后端之外的任何人使用 UnitAuto(强制登录鉴权)!!!如果不需要单元测试则移除相关代码或 unitauto.Log.DEBUG = false;
249-
// 上线生产环境前改为 false,可不输出 APIJSONORM 的日志 以及 SQLException 的原始(敏感)信息
250-
unitauto.Log.DEBUG = Log.DEBUG = true;
251-
APIJSONParser.IS_PRINT_BIG_LOG = true;
252-
APIJSONApplication.init();
253-
}
254-
255-
// SpringBoot 2.x 自定义端口方式
256-
@Override
257-
public void customize(ConfigurableServletWebServerFactory server) {
258-
server.setPort(8080);
259-
}
260262

261263
// 全局 ApplicationContext 实例,方便 getBean 拿到 Spring/SpringBoot 注入的类实例
262264
private static ApplicationContext APPLICATION_CONTEXT;

APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoController.java

+35-4
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,31 @@
101101
@Service
102102
@RestController
103103
@RequestMapping("")
104-
public class DemoController extends APIJSONController {
104+
public class DemoController extends APIJSONController<Long> {
105105
private static final String TAG = "DemoController";
106106

107107
// 可以更方便地通过日志排查错误
108108
@Override
109109
public String getRequestURL() {
110110
return httpServletRequest.getRequestURL().toString();
111111
}
112+
112113

113-
//通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
114+
// 通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
115+
116+
/**增删改查统一入口,这个一个方法可替代以下 7 个方法,牺牲一些路由解析性能来提升一点开发效率
117+
* @param method
118+
* @param tag
119+
* @param params
120+
* @param request
121+
* @param session
122+
* @return
123+
*/
124+
@PostMapping(value = "crud/{method}") // 直接 {method} 或 apijson/{method} 会和内置网页的路由有冲突
125+
@Override
126+
public String crud(@PathVariable String method, @RequestBody String request, HttpSession session) {
127+
return super.crud(method, request, session);
128+
}
114129

115130
/**获取
116131
* @param request 只用String,避免encode后未decode
@@ -196,8 +211,23 @@ public String delete(@RequestBody String request, HttpSession session) {
196211
return super.delete(request, session);
197212
}
198213

214+
// 通用接口,非事务型操作 和 简单事务型操作 都可通过这些接口自动化实现 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
199215

200-
//以上接口对应的简版接口,格式为 {method}/{tag}?format=true&@explain=true.. <<<<<<<<<<<<<<<<<<<<<<<<<
216+
// 以上接口对应的简版接口,格式为 {method}/{tag}?format=true&@explain=true.. <<<<<<<<<<<<<<<<<<<<<<<<<
217+
218+
/**增删改查统一接口,这个一个接口可替代 7 个万能通用接口,牺牲一些路由解析性能来提升一点开发效率
219+
* @param method
220+
* @param tag
221+
* @param params
222+
* @param request
223+
* @param session
224+
* @return
225+
*/
226+
@PostMapping("crud/{method}/{tag}") // 直接 {method}/{tag} 或 apijson/{method}/{tag} 会和内置网页的路由有冲突
227+
@Override
228+
public String crudByTag(@PathVariable String method, @PathVariable String tag, @RequestParam Map<String, String> params, @RequestBody String request, HttpSession session) {
229+
return super.crudByTag(method, tag, params, request, session);
230+
}
201231

202232
/**获取
203233
* @param request 只用String,避免encode后未decode
@@ -283,7 +313,7 @@ public String deleteByTag(@PathVariable String tag, @RequestParam Map<String, St
283313
return super.deleteByTag(tag, params, request, session);
284314
}
285315

286-
//以上接口对应的简版接口,格式为 {method}/{tag}?format=true&@explain=true.. >>>>>>>>>>>>>>>>>>>>>>>>>
316+
// 以上接口对应的简版接口,格式为 {method}/{tag}?format=true&@explain=true.. >>>>>>>>>>>>>>>>>>>>>>>>>
287317

288318

289319

@@ -1231,6 +1261,7 @@ else if (APIJSON_DELEGATE_ID.toLowerCase().equals(name.toLowerCase())) {
12311261
map.remove("$_type");
12321262
map.remove("$_except_headers");
12331263
map.remove("$_delegate_url");
1264+
map.remove("$_delegate_id");
12341265

12351266
Set<Entry<String, String[]>> set = map == null ? null : map.entrySet();
12361267

APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoFunctionParser.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ public Long getCurrentUserId(@NotNull JSONObject current) {
5757
}
5858

5959
public List<Long> getCurrentUserIdAsList(@NotNull JSONObject current) {
60-
return Arrays.asList(DemoVerifier.getVisitorId(getSession()));
60+
List<Long> list = new ArrayList<>(1);
61+
list.add(DemoVerifier.getVisitorId(getSession()));
62+
return list;
6163
}
6264

6365
public List<Long> getCurrentContactIdList(@NotNull JSONObject current) {
@@ -235,17 +237,14 @@ public JSONArray getIdList(@NotNull JSONObject current) {
235237
* @return
236238
* @throws Exception
237239
*/
238-
@Override
239240
public Object verifyAccess(@NotNull JSONObject current) throws Exception {
240241
long userId = current.getLongValue(JSONRequest.KEY_USER_ID);
241242
String role = current.getString(JSONRequest.KEY_ROLE);
242-
if (AbstractVerifier.OWNER.equals(role) && userId != DemoVerifier.getVisitorId(getSession())) {
243+
if (AbstractVerifier.OWNER.equals(role) && userId != (Long) DemoVerifier.getVisitorId(getSession())) {
243244
throw new IllegalAccessException("登录用户与角色OWNER不匹配!");
244245
}
245246
return null;
246247
}
247248

248249

249-
250-
251250
}

APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoParser.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
* 具体见 https://github.com/Tencent/APIJSON/issues/38
2727
* @author Lemon
2828
*/
29-
public class DemoParser extends APIJSONParser {
29+
public class DemoParser extends APIJSONParser<Long> {
3030

3131
public DemoParser() {
3232
super();

APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,10 @@ public DemoSQLConfig(RequestMethod method, String table) {
6565
// TABLE_KEY_MAP.put(Privacy.class.getSimpleName(), "apijson_privacy");
6666

6767
//主键名映射
68-
SIMPLE_CALLBACK = new SimpleCallback() {
68+
SIMPLE_CALLBACK = new SimpleCallback<Long>() {
6969

7070
@Override
71-
public AbstractSQLConfig getSQLConfig(RequestMethod method, String database, String schema, String table) {
71+
public AbstractSQLConfig getSQLConfig(RequestMethod method, String database, String schema, String datasource, String table) {
7272
return new DemoSQLConfig(method, table);
7373
}
7474

@@ -81,13 +81,13 @@ public AbstractSQLConfig getSQLConfig(RequestMethod method, String database, Str
8181
// }
8282

8383
@Override
84-
public String getUserIdKey(String database, String schema,String datasource, String table) {
84+
public String getUserIdKey(String database, String schema, String datasource, String table) {
8585
return USER_.equals(table) || PRIVACY_.equals(table) ? ID : USER_ID; // id / userId
8686
}
8787

8888
//取消注释来实现数据库自增 id
8989
// @Override
90-
// public Object newId(RequestMethod method, String database, String schema, String datasource, String table) {
90+
// public Long newId(RequestMethod method, String database, String schema, String datasource, String table) {
9191
// return null; // return null 则不生成 id,一般用于数据库自增 id
9292
// }
9393

APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoVerifier.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
* 具体见 https://github.com/Tencent/APIJSON/issues/12
2222
* @author Lemon
2323
*/
24-
public class DemoVerifier extends APIJSONVerifier {
24+
public class DemoVerifier extends APIJSONVerifier<Long> {
2525
public static final String TAG = "DemoVerifier";
2626

2727
// 重写方法来自定义字段名等

APIJSON-Java-Server/APIJSONDemo-Druid/pom.xml

+11-6
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>apijson.demo</groupId>
77
<artifactId>apijson-demo-druid</artifactId>
8-
<version>5.0.0</version>
8+
<version>5.1.0</version>
99
<packaging>jar</packaging>
1010

1111
<name>APIJSONDemo-Druid</name>
@@ -22,7 +22,7 @@
2222
<dependency>
2323
<groupId>com.github.APIJSON</groupId>
2424
<artifactId>apijson-framework</artifactId>
25-
<version>LATEST</version>
25+
<version>5.1.0</version>
2626
</dependency>
2727

2828
<!-- 需要用的数据库 JDBC 驱动 -->
@@ -83,6 +83,15 @@
8383
</build>
8484

8585
<repositories>
86+
<!-- APIJSON 必须用到的托管平台 -->
87+
<repository>
88+
<id>jitpack.io</id>
89+
<url>https://jitpack.io</url>
90+
<snapshots>
91+
<enabled>true</enabled>
92+
</snapshots>
93+
</repository>
94+
8695
<repository>
8796
<id>spring-snapshots</id>
8897
<url>https://repo.spring.io/snapshot</url>
@@ -94,10 +103,6 @@
94103
<id>spring-milestones</id>
95104
<url>https://repo.spring.io/milestone</url>
96105
</repository>
97-
<repository>
98-
<id>jitpack.io</id>
99-
<url>https://jitpack.io</url>
100-
</repository>
101106
</repositories>
102107

103108
</project>

APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoApplication.java

+1-6
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import apijson.framework.APIJSONApplication;
3333
import apijson.framework.APIJSONCreator;
3434
import apijson.orm.SQLConfig;
35-
import apijson.orm.SQLExecutor;
3635

3736

3837
/**Demo SpringBoot Application 主应用程序启动类
@@ -63,15 +62,11 @@ public void customize(ConfigurableServletWebServerFactory server) {
6362

6463
static {
6564
// 使用本项目的自定义处理类
66-
APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator() {
65+
APIJSONApplication.DEFAULT_APIJSON_CREATOR = new APIJSONCreator<Long>() {
6766
@Override
6867
public SQLConfig createSQLConfig() {
6968
return new DemoSQLConfig();
7069
}
71-
@Override
72-
public SQLExecutor createSQLExecutor() {
73-
return new DemoSQLExecutor();
74-
}
7570
};
7671

7772
// 把以下需要用到的数据库驱动取消注释即可,如果这里没有可以自己新增

0 commit comments

Comments
 (0)