当前位置:首页>科技>开源免费低代码开发平台开源快速开发平台
发布时间:2026-07-25阅读(1)
fhs-Framework是一个基于Springboot Springcloud Mybatis Plus sa-token vue elementui 的快速开发平台(低代码开发平台),本框架永远免费,永久全开源。
FHS-Framwork是一个集成了国内外诸多优秀开源项目的快速开发平台,除了在常规快速开发平台提供 用户,角色,权限,菜单,字典,审计日志,代码生成器 还拥有可以让您更少写SQL和前端代码的翻译服务以及PAGEX服务。
二、开源协议使用Apache-2.0开源协议
三、界面展示



系统管理
基于Springboot Springcloud Mybatis Plus sa-token vue elementui。
用到的国产组件集翻译组件可以只通过注解把你表里的id转换为名称,把你的字典码转换为字典注释(比如0转换为男1转换为女)。
- All in One模式 开发 微服务模式部署微服务开发对于电脑内存要求比较高,调试个东西要启动好多个微服务还要启动网关,调用链路复杂的点一下不知道调用到谁那里去了,要解决还要自己机器跑nacos,fhs 首创,all in one 模式开发,微服务模式部署,在开发环境直接把所有的模块集成到一个springBoot项目启动,部署的时候又使用微服务 网关模式部署 参考:fhs_app/fhs_app_all_in_one 和 fhs_app/fhs_app_basics的做法 即可实现。
- 更简单的微服务调用传统微服务玩法是第一我定义一个fegin api接口,然后写一个controller ,在写一个service实现 需要三个步骤,fhs 集成了easy cloud,只需要在service层给对应的方法上加@CloudMethod 即可完成接口暴露,哪个微服务用到直接 Autowired service接口即可。
- 更好用的校验框架集成了validate-springboot-starter,在兼容hibernate Validator和javax validation的同时,支持了更多自定义玩法。 内置常用验证规则:比如手机号验证,正则验证,ip,邮箱,长度,范围,数字,小数,中国车牌号,身份证,长度, url, 图书ISBN编号,文件后缀,文件大小 等常用验证规则


avue今年又获得了GVP,证明了越来越多的前端程序员开始接受JSON驱动来写VUE 页面,fhs 也将组件封装为JSON驱动的组件,比如简单的CRUD,就可以这么写:
<template> <pagex-crudForm :namespace="namespace" :title="title" :crudSett="crudSett" :formSett="formSett" :idFieldName="idFieldName" > </pagex-crudForm></template><script>export default { name: "Dict", data() { return { namespace:dictGroup, title:字典分组, idFieldName:groupId,//主键 crudSett:{ // 列表配置 api: /basic/ms/dictGroup/pagerAdvance, //列表接口 sortSett: [{//排序 "direction": "DESC", "property": "updateTime" }], buttons: [//列表上的按钮 { title: 新增, name: add, code: "add", type: primary, size: mini, icon: el-icon-plus, // 支持写click 自定义点击事件,新增组件会自带事件 } ], columns: [ {label: 分组名称, name: groupName},//列 分组名称 {//分组编码列,点击之后跳转到字典项列表 label: 分组编码, name: groupCode, type: formart, formart: "<label style=cursor:pointer>${groupCode}</label>",//格式化显示效果 click: function (_row) { this.$router.push({path: /dict/type/data/,query:{groupCode: _row.groupCode}}); } }, { label: 操作,//操作列 name: operation, type: textBtn, textBtn: [ { title: "编辑", type: "bottom", size: mini }, { title: "详情", type: "success", size: mini }, { title: "删除", type: "danger", size: mini, api: /basic/ms/dictGroup/ } ], } ], filters: [//过滤条件 {label: 分组名称:, name: groupName, placeholder: "分组名称", type: text, operation: like},//like 是后台过滤规则,模糊匹配 支持> < != between like 等等 {label: 分组编码:, name: groupCode, placeholder: "分组编码", type: text, operation: like} ], }, formSett:{// 表单 addApi: /basic/ms/dictGroup/,//新增表单的url,默认的post updateApi: /basic/ms/dictGroup/,//修改表单的url 默认是post data:{ //这里写默认值,比如groupName:默认编码 }, controls:[//表单字段 { type: text, name: groupName, label: 分组名称, rule: required, placeholder: 请输入分组名称 }, { type: text, name: groupCode, label: 分组编码, rule: required, placeholder: 请输入分组编码 } ] }, } }, methods: { //自定义方法 }};</script>
Mybatis的wrapper是我见过特别好的查询api设计,但是条件稍微多一点就写的很长,我们通过APT技术(类似lombok对po进行编译时增强),对PO进行增强,使用PO来替代原生Wrapper构造,和activeRecord配合起来简直不要太美。上demo:
//有po定义如下:@Data@Wrapperable //增强注解 类似lombok的@data 注解@TableName("user")public class User { @TableId("user_id") private Integer userId; @TableField("name") private String name; @TableField("age") private Integer age; @TableField("sex") private String sex;} @GetMapping("/one") public User one() { return User.newOBJ().nameLike("小").one(); } @GetMapping("/oneField") public User oneField() { //这里只查id和name2个字段 return User.newOBJ().nameLike("小").one(new String[]{User.USERID, User.NAME}); } @GetMapping("/list") public List<User> list() { return User.newOBJ().ageBetween(10, 25).list(); } @GetMapping("/listField") public List<User> listField() { return User.newOBJ().ageBetween(10, 20).list(new String[]{User.USERID, User.NAME}); } @GetMapping("/delete") public int delete() { return User.newOBJ().ageBetween(50, 80).delete(); } @GetMapping("/count") public Long count() { return User.newOBJ().ageBetween(10,26).count(); } @GetMapping("/update") public int update() { User user = User.newOBJ(); user.setAge(19);//把小明的年龄改为19 return user.nameEQ("小明").update(); }
bean2Wrapper,list,list(String[] fields),one,one(String[] fileds),count,delete,update,newOBJ
已经支持的wrapper相关操作方法有:eq,neq,ge,gt,le,lt,like,notLike,likeLeft,likeRight,in,notIn,between,orderByAsc,orderByDesc,isNull,notNull
千万注意:本功能和lombok一样需要搭配idea插件使用,不然class虽然增强了但是idea 无法识别这些方法报错,但是不影响运行,我们提供了配套的idea插件。
要求idea版本为 2021.2.2 以及 以上。 并且idea加入以下配置:setting-Build,Execution,Deployment-Compiler Shared build process VM 的value设置为 option -Djps.track.ap.dependencies=false

私信回复:低代码开发平台
或访问一飞开源:https://code.exmay.com/
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图