低代码平台3--JEECG-Boot之三:集成实践

低代码系列

Posted by 就是我啦 on January 5, 2022

低代码平台3–JEECG-Boot之三:集成实践

1. 在线表单的前端源码是闭源的

具体可以参看这里:

项目中依赖项@jeecg/antd-online-mini没有开源License.

https://toscode.gitee.com/jeecg/jeecg-boot/issues/I4LT86

image-20220105142514029

所以,集成在线表单功能基本是不可行的

唯一的集成方式,就是在线开发配置好程序后,生成代码,再配置调用

后面的实践,基本都是基于这篇:

https://blog.csdn.net/YaoChiZaoFan/article/details/106488989

2. 在线开发,配置好程序

image-20220105143013594

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

image-20220105143121461

3. 源码编译。

按照上面博文里面说明,编译好java和前端程序

image-20220105143327841

前端VUE

image-20220105143420965

4. 配置免登录调用

按照上篇文章讲的,配置免登录。下面是对上篇文章相关部分的摘抄:

项目是基于shiro token模式的。登录后才能打开页面,这点是一般管理系统的通用做法。

官方文档里在这里有“ 免登陆配置,后台取消token验证机制”的方法

http://jeecg.com/doc/qa

image-20211227095230656

虽然没有验证过,但此方法应该是可行的,不足之处就是没有登录的话其实就丢失了当前用户的信息,在jeecgboot的页面里就没办法取到当前用户的信息,对某些功能来说这可能是必须的。

所以,真正靠谱的办法可能是仍然需要集成jeecgboot的登录功能,在你的系统登录时,同时也在jeecgboot登录并获取其token,在后续需要访问jeecgboot时再带着token信息访问。只是这样集成需要对jeecgboot的底层源码做修改,难度也稍大。但理论上仍然是可行的。

【20211231验证】

image-20211231133936815

router, constantRouterMap:

image-20211231134128993

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

image-20211231134250535

【验证结束】

后台可以直接访问:

http://192.168.1.158:8080/jeecg-boot/test/bigScreen/templat/index1

http://192.168.1.158:8080/jeecg-boot/test/bigScreen/templat/index2

image-202112281025647892

image-20211228105956757

5. 后台访问验证

成功了:

image-20220105143751465

相关代码:


        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,还是比较漂亮的。就是要考虑和现有系统的风格搭配问题

仍有不足之处,每次点击都会出来烦人的预加载页面。。。

image-20220105163350798

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

image-20220105163932997

经过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的前端,和自己系统的前端直接合并为一个。。。以后有机会可以试试