Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jiangxy/react-java-goos

Repository files navigation

react-java-goos

配合React通用后台使用的一个小工具。

React通用后台要求后端接口必须符合特定的格式,比如查询接口必须是/api/xxx/select、接口的返回必须是HTTP 200等。如果每个项目接入的时候都从头写一遍,估计要崩溃了。。。所以我在想能不能减少一些重复的工作。

如果你的后端是java的(基于Spring),这个工具可以帮你快速生成一些模版类。把生成的类copy到自己的工程中并填写自己的逻辑,就可以直接使用通用后台提供的登录/CRUD/导入/导出等功能。

Quick Start

首先要按照React通用后台的要求写好querySchema和dataSchema文件,然后直接执行jar文件即可:

java -jar goos-1.1.0.jar [输入目录] [输出目录]

输入目录大概是这种结构:

foolbear:schema $ ls -lh
total 48
-rw-r--r-- 1 foolbear staff 377B 9 5 00:41 test.config.js // test表的配置文件
-rw-r--r-- 1 foolbear staff 1.5K 9 5 00:41 test.dataSchema.js // test表的dataSchema
-rw-r--r-- 1 foolbear staff 3.4K 9 5 00:41 test.querySchema.js // test表的querySchema
-rw-r--r-- 1 foolbear staff 133B 9 5 00:41 testSms.config.js // testSms表的配置文件
-rw-r--r-- 1 foolbear staff 547B 9 5 00:41 testSms.dataSchema.js
-rw-r--r-- 1 foolbear staff 762B 9 5 00:41 testSms.querySchema.js

输出目录的结构:

foolbear:output $ ls -lh -R
total 16
-rw-r--r-- 1 foolbear staff 2.1K 9 5 15:29 CommonResult.java // 通用工具类
-rw-r--r-- 1 foolbear staff 1.4K 9 5 15:29 LoginController.java // 登录相关接口
drwxr-xr-x 5 foolbear staff 170B 9 5 15:29 test
drwxr-xr-x 5 foolbear staff 170B 9 5 15:29 testSms
./test: // test表相关的类
total 32
-rw-r--r-- 1 foolbear staff 7.6K 9 5 15:29 TestController.java // test表CRUD相关接口
-rw-r--r-- 1 foolbear staff 726B 9 5 15:29 TestQueryVO.java
-rw-r--r-- 1 foolbear staff 269B 9 5 15:29 TestVO.java
./testSms: // testSms表相关的类
total 32
-rw-r--r-- 1 foolbear staff 7.6K 9 5 15:29 TestSmsController.java
-rw-r--r-- 1 foolbear staff 453B 9 5 15:29 TestSmsQueryVO.java
-rw-r--r-- 1 foolbear staff 317B 9 5 15:29 TestSmsVO.java

把生成的类copy到自己的项目中,将Controller类的逻辑填写完整,前端需要的接口就完成了。

更多文档请参考React通用后台项目。

关于跨域

spring 4.2之后开始支持CORS跨域,但可能有些问题,见代码中的注释

对于SpringMVC的配置,给出一个例子:springMVC.xml,注意其中的message converter和跨域相关配置。

跨域需要先一次OPTIONS请求,再实际的GET/POST之类请求。如果你的web.xml中配置了一些filter,可能导致OPTIONS请求失败,这就需要具体情况具体分析了。

我的习惯是这边localhost:8080跑着tomcat,那边localhost:4040跑着webpack-dev-server,这样调试起来很方便。

TIPS

schema中的int/float会被转换为java中的Long/Double,为了简单,不区分Long/IntegerDouble/Float了,要注意一下。

一般我们要将VO转换为其他pojo去操作,转换的时候可能用到BeanUtils.copyProperties之类的方法,对于同名但不同类型的字段,copyProperties不会生效的,比如不会把Long id的字段值copy给Integer id,要自己注意下。

关于goos

我在给这个项目想名字的时候,突然想起了早年玩过的一个游戏World of Goo。其中goo是一种黏黏糊糊的球状生物,可以搭建各种各样的结构,连接不同的建筑,跨越各种地形。倒是蛮切题的,这个项目也是希望连接React前端和java后端嘛。

能力所限,我只能给出java版本的,而且也未必是最优的。希望以后能有更多版本的goos吧。

About

配合React通用后台的小工具,自动生成后端接口

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /