低代码平台3–JEECG-Boot之三:集成实践
1. 在线表单的前端源码是闭源的
具体可以参看这里:
项目中依赖项@jeecg/antd-online-mini没有开源License.
https://toscode.gitee.com/jeecg/jeecg-boot/issues/I4LT86

所以,集成在线表单功能基本是不可行的
唯一的集成方式,就是在线开发配置好程序后,生成代码,再配置调用
后面的实践,基本都是基于这篇:
https://blog.csdn.net/YaoChiZaoFan/article/details/106488989
2. 在线开发,配置好程序

点击代码生成,生成代码。

3. 源码编译。
按照上面博文里面说明,编译好java和前端程序

前端VUE

4. 配置免登录调用
按照上篇文章讲的,配置免登录。下面是对上篇文章相关部分的摘抄:
项目是基于shiro token模式的。登录后才能打开页面,这点是一般管理系统的通用做法。
官方文档里在这里有“ 免登陆配置,后台取消token验证机制”的方法
http://jeecg.com/doc/qa

虽然没有验证过,但此方法应该是可行的,不足之处就是没有登录的话其实就丢失了当前用户的信息,在jeecgboot的页面里就没办法取到当前用户的信息,对某些功能来说这可能是必须的。
所以,真正靠谱的办法可能是仍然需要集成jeecgboot的登录功能,在你的系统登录时,同时也在jeecgboot登录并获取其token,在后续需要访问jeecgboot时再带着token信息访问。只是这样集成需要对jeecgboot的底层源码做修改,难度也稍大。但理论上仍然是可行的。
【20211231验证】

router, constantRouterMap:

进行上述改造后,就可以免登录调用:

【验证结束】
后台可以直接访问:
http://192.168.1.158:8080/jeecg-boot/test/bigScreen/templat/index1
http://192.168.1.158:8080/jeecg-boot/test/bigScreen/templat/index2


5. 后台访问验证
成功了:

相关代码:
filterChainDefinitionMap.put("/test/**", "anon"); //所有test排除。syj
filterChainDefinitionMap.put("/syj/**", "anon"); //所有syj排除。syj
permission.js
const whiteList = ['/user/login', '/user/register', '/user/register-result', '/user/alteration', '/layouts/syj', '/syj/SyjTypeList', '/test/home', '/test/step-form'] // no redirect whitelist
whiteList.push(OAUTH2_LOGIN_PAGE_PATH)
router.config.js
{
path: '/syj',
component: BlankLayout,
redirect: '/syj/SyjTypeList',
children: [{
path: 'SyjTypeList',
name: 'SyjTypeList',
component: () =>
import ('@/views/syj/SyjTypeList')
},
{
path: 'step-form',
name: 'StepForm',
component: () =>
import ('@/views/examples/form/stepForm/StepForm'),
meta: { title: '分步表单' }
}
]
},
6. 总结
- 按照上面的方法确实能走通了!
- Jeecgboot在线开发配置好程序后,生成代码,再配置免登录调用
- 既可以利用到jeecgboot的快速开发优点,又可以方便的集成到现有系统
- Jeecgboot的前端界面基于vue,还是比较漂亮的。就是要考虑和现有系统的风格搭配问题
仍有不足之处,每次点击都会出来烦人的预加载页面。。。

可以很容易改掉,但貌似性能还是比较差,响应时间长

经过nginx代理后,性能有所好转,如果开启nginx压缩,可能会更好点。
index.html的div大部分去掉之后,性能也能好点:
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
<!-- <div class="loader-section section-left"></div> -->
<!-- <div class="loader-section section-right"></div> -->
<!-- <div class="load_title">正在加载 JeecgBoot 低代码平台,请耐心等待
</div> -->
</div>
</div>
更正确的做法应该是去掉jeecg的前端,和自己系统的前端直接合并为一个。。。以后有机会可以试试