日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

[開源]快速開發(fā)平臺(低代碼開發(fā)平臺),本框架永遠(yuǎn)免費,永久全開源(開源 低代碼開發(fā)平臺)

一、開源項目簡介

fhs-Framework是一個基于Springboot Springcloud Mybatis Plus sa-token vue elementui 的快速開發(fā)平臺(低代碼開發(fā)平臺),本框架永遠(yuǎn)免費,永久全開源。

FHS-Framwork是一個集成了國內(nèi)外諸多優(yōu)秀開源項目的快速開發(fā)平臺,除了在常規(guī)快速開發(fā)平臺提供 用戶,角色,權(quán)限,菜單,字典,審計日志,代碼生成器 還擁有可以讓您更少寫SQL和前端代碼的翻譯服務(wù)以及PAGEX服務(wù)。

二、開源協(xié)議

使用Apache-2.0開源協(xié)議

三、界面展示

[開源]快速開發(fā)平臺(低代碼開發(fā)平臺),本框架永遠(yuǎn)免費,永久全開源(開源 低代碼開發(fā)平臺)[開源]快速開發(fā)平臺(低代碼開發(fā)平臺),本框架永遠(yuǎn)免費,永久全開源(開源 低代碼開發(fā)平臺)[開源]快速開發(fā)平臺(低代碼開發(fā)平臺),本框架永遠(yuǎn)免費,永久全開源(開源 低代碼開發(fā)平臺)[開源]快速開發(fā)平臺(低代碼開發(fā)平臺),本框架永遠(yuǎn)免費,永久全開源(開源 低代碼開發(fā)平臺)

四、功能概述

系統(tǒng)管理

  • 部門管理
  • 用戶管理
  • 角色管理
  • 字典管理
  • 菜單管理
  • 代碼生成
  • 登錄日志

五、技術(shù)選型

基于Springboot Springcloud Mybatis Plus sa-token vue elementui。

用到的國產(chǎn)組件集

  • Mybatis Plus
  • Sa-Token
  • Validate-Springboot-Starter
  • SpringCloud Alibaba
  • ip2region
  • knife4j

和其他框架差異化特性

– ????翻譯組件

????????翻譯組件可以只通過注解把你表里的id轉(zhuǎn)換為名稱,把你的字典碼轉(zhuǎn)換為字典注釋(比如0轉(zhuǎn)換為男1轉(zhuǎn)換為女)。

– ????All in One模式 開發(fā) 微服務(wù)模式部署

????????微服務(wù)開發(fā)對于電腦內(nèi)存要求比較高,調(diào)試個東西要啟動好多個微服務(wù)還要啟動網(wǎng)關(guān),調(diào)用鏈路復(fù)雜的點一下不知道調(diào)用到誰那里去了,要解決還要自己機器跑nacos,fhs 首創(chuàng),all in one 模式開發(fā),微服務(wù)模式部署,在開發(fā)環(huán)境直接把所有的模塊集成到一個springBoot項目啟動,部署的時候又使用微服務(wù) 網(wǎng)關(guān)模式部署 參考:fhs_app/fhs_app_all_in_one 和 fhs_app/fhs_app_basics的做法 即可實現(xiàn)。

– ????更簡單的微服務(wù)調(diào)用

???????? 傳統(tǒng)微服務(wù)玩法是第一我定義一個fegin api接口,然后寫一個controller ,在寫一個service實現(xiàn) 需要三個步驟,fhs 集成了easy cloud,只需要在service層給對應(yīng)的方法上加@CloudMethod 即可完成接口暴露,哪個微服務(wù)用到直接 Autowired service接口即可。

– ????更好用的校驗框架

????????集成了validate-springboot-starter,在兼容hibernate Validator和javax validation的同時,支持了更多自定義玩法。 內(nèi)置常用驗證規(guī)則:比如手機號驗證,正則驗證,ip,郵箱,長度,范圍,數(shù)字,小數(shù),中國車牌號,身份證,長度, url, 圖書ISBN編號,文件后綴,文件大小 等常用驗證規(guī)則

[開源]快速開發(fā)平臺(低代碼開發(fā)平臺),本框架永遠(yuǎn)免費,永久全開源(開源 低代碼開發(fā)平臺)

[開源]快速開發(fā)平臺(低代碼開發(fā)平臺),本框架永遠(yuǎn)免費,永久全開源(開源 低代碼開發(fā)平臺)

– ????JSON驅(qū)動的VUE 列表和表單組件

????????avue今年又獲得了GVP,證明了越來越多的前端程序員開始接受JSON驅(qū)動來寫VUE 頁面,fhs 也將組件封裝為JSON驅(qū)動的組件,比如簡單的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'},//列 分組名稱 {//分組編碼列,點擊之后跳轉(zhuǎn)到字典項列表 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 是后臺過濾規(guī)則,模糊匹配 支持> < != between like 等等 {label: '分組編碼:', name: 'groupCode', placeholder: "分組編碼", type: 'text', operation: 'like'} ], }, formSett:{// 表單 addApi: '/basic/ms/dictGroup/',//新增表單的url,默認(rèn)的post updateApi: '/basic/ms/dictGroup/',//修改表單的url 默認(rèn)是post data:{ //這里寫默認(rèn)值,比如groupName:'默認(rèn)編碼' }, controls:[//表單字段 { type: 'text', name: 'groupName', label: '分組名稱', rule: 'required', placeholder: '請輸入分組名稱' }, { type: 'text', name: 'groupCode', label: '分組編碼', rule: 'required', placeholder: '請輸入分組編碼' } ] }, } }, methods: { //自定義方法 }};</script>

– ????Mybatis Plus查詢增強

Mybatis的wrapper是我見過特別好的查詢api設(shè)計,但是條件稍微多一點就寫的很長,我們通過APT技術(shù)(類似lombok對po進行編譯時增強),對PO進行增強,使用PO來替代原生Wrapper構(gòu)造,和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(); }

class和提示已經(jīng)支持自動生成的方法有:

bean2Wrapper,list,list(String[] fields),one,one(String[] fileds),count,delete,update,newOBJ

已經(jīng)支持的wrapper相關(guān)操作方法有:

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設(shè)置為 option -Djps.track.ap.dependencies=false

[開源]快速開發(fā)平臺(低代碼開發(fā)平臺),本框架永遠(yuǎn)免費,永久全開源(開源 低代碼開發(fā)平臺)

六、源碼地址

私信回復(fù):低代碼開發(fā)平臺

或訪問一飛開源:https://code.exmay.com/

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部
乐昌市| 阳原县| 周至县| 庄浪县| 时尚| 温泉县| 江源县| 咸宁市| 定远县| 富平县| 兴海县| 房山区| 维西| 宝清县| 海林市| 河南省| 通城县| 福安市| 通榆县| 平远县| 韶山市| 和平县| 平潭县| 仪征市| 南通市| 克山县| 准格尔旗| 绥棱县| 邯郸县| 克拉玛依市| 百色市| 涟源市| 诸暨市| 鄂温| 台北市| 桑日县| 双峰县| 凉城县| 温宿县| 万源市| 蚌埠市|