開源後臺系統*mee-admin*

funnyZpC發表於2020-10-07

mee-admin開源後臺系統

Preface

  這是一個開放的時代,我們不能總是把東西揣在口袋裡面自己樂呵。
  也正如名言所說的“如果你有兩塊麵包,你當用其中一塊去換一朵水仙花”
  所以,繼上一次把我的兩個個人專案開源之後今天我再一次把自有的後臺頁面也開源出來,以回饋整個開源世界。

開源地址

https://github.com/funnyzpc/mee-admin

專案結構概述

mee-admin是由我的個人mee專案開源而來,mee-admin專案是一個前後端一體化的專案,不過在程式碼上實現了頁面與資料分離,是一個非常好的
輕量級後端工程,所以在正式使用時您會發現主體業務部門均是採用json互動,前端頁面使用模板工具實現資料展現及編輯
jeesite不一樣,我們不使用jsp+sitmesh+ehcache臃腫化專案
Spring-Cloud-Platform xboot 不一樣,這裡不使用vue iview 做前後端分離,也不使用springclooud做叢集分散式
所以我的專案更加輕量級,不需要裝node 不需要npm打包 需不要安裝nginx 同時也不需要編寫無聊的mapper介面,不需要單獨寫增刪改....
所以對於企業內部需求開發更是無比的急速
同時,mee-admin只需具有java後端以及一點點javascript開發能力,便可急速上手。

專案技術相關

  • 使用springboot 2.3.4.RELEASE作為基礎框架
  • 使用mybatis作為dao框架
  • 使用postgreSQL 作為框架DB(可支援MysqlOracle)
  • 使用shiro做許可權管理
  • 使用Freemarker做頁面模板
  • 使用jquery 外掛作javascript基本擴充套件庫使用
    • 目前只是一些元件依賴用,建議大多數情況下使用ES5ES6規範的javascript擴充套件
  • 使用handlebars做表單及資料模板
  • 使用seajs 做基礎模組管理
  • 封裝了序列(ID)生成器(支援分散式)
    • SeqGenServiceImpl 序列生成器(支援分散式)
    • SeqGenUtil 普通序列生成器
  • 封裝了Jacksonjson庫,完全可替代fastjson
  • 封裝了物理分頁PhysicalPageInterceptor及邏輯分頁LogicalPageIntercepter(兩個可任選其一),完全替代RowBounds及一眾分頁依賴
  • 封裝了ExcelCSV工具
    • ExcelReadUtil EXCEL讀工具
    • ExcelWriteUtil EXCEL寫工具
    • CSVUtils CSV讀工具
  • 簡單封裝了java8日期工具類 DateUtil

專案介面

  • 登入

  • 主頁

  • 報表

  • 基礎配置

  • 編輯及修改

  • 系統配置

專案執行及打包

  • 本地專案執行

  • 打包及Linux伺服器構建指令碼,見mee-admin

    • 必須安裝maven(方法請自行搜尋引擎查詢)

專案訪問

  • local: http://127.0.0.1/mee/login
  • server: http://[Your DOMAIN or HOST+PORT]/mee/login

Notice

雖整個專案封裝的較為完整, 但是對於一些自定義的展示還是需要有一定的前端技能
作為補償,這裡大致寫了功能開發流程[see:Function flow](#### Function flow),具體的還需要讀者具體學習哈~

Function flow

  • 功能開發流程

    • 新增mybatis SQL xml檔案及對映實體類entity
    • 編寫控制器controller及業務service程式碼
    • 編寫構建前端頁面並新增選單項
    • 新增依賴js resources/public/module
    • 後端新增許可權標識@RequiresPermissions("your_auth_code")
    • 前端(選單和業務頁面)新增許可權標識<@shiro.hasPermission name="your_auth_code"></@shiro.hasPermission>
    • 後臺新增選單專案
    • 後臺角色許可權分配
  • js新增對話方塊或按鈕擴充套件功能(這是難點!)

       業務前端js採用模組化依賴並封裝了表單著錄以及增刪改查相應功能,十分便捷,
    目前對於擴充套件功能(比如新增一個’重算‘) 需要自定義函式及相應邏輯,具體流程大致如下
  1. search-form內定義button控制元件(一定要有name屬性)
  2. 在依賴的js檔案內的init函式內定義擴充套件toolbar:{ "控制元件屬性名": 屬性名對應函式 }
  3. 編寫相應函式邏輯

end

歡迎提交issue,如有好的建議及意也請留下腳印,這裡先感謝哈?
同時, 如有困難可以諮詢 funnyzpc@gmail.com

相關文章