日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

從零開始搭建項目,沒有好用的腳手架怎么行!最近發現一款高顏值的前后端分離腳手架sa-plus,自帶代碼生成器,可一鍵生成前端、后端、API文檔代碼,推薦給大家!

sa-plus簡介

一款基于SpringBoot的快速開發框架,內置代碼生成器。

項目特點:

  • 集成常用開發功能,包括文件上傳、角色授權、全局異常處理、redis控制臺、API日志統計等。
  • 內置代碼生成器,高自動化代碼生成,可一鍵生成后端、前端和API文檔代碼。
  • 通過給表添加注釋來生成代碼,數據庫表建好了,項目也就開發一半了。

項目架構

sa-plus前后端使用的技術棧還是非常主流的,下面我們來看下。

使用技術棧

  • 后端技術棧:MySQL 5.7、SpringBoot、Mybatis-Plus、Druid、PageHelper、Redis、Sa-Token、Lombok、Hutool、FastJson
  • 前端技術棧:Vue、Element-Ui、WangEditor、Jquery、Layer、Swiper、Echarts

模塊介紹

  • sp-server:SpringBoot后端代碼。
  • sp-admin:Vue管理系統前端代碼。
  • sp-apidoc:Docsify API接口文檔代碼。
  • sp-generate:代碼生成器,可生成后端、前端、API文檔。
  • sp-devdoc:sa-plus本地文檔。
  • doc:其它文件,存放SQL腳本。

快速開始

sp-server、sp-admin、sp-apidoc為sa-plus的主要項目模塊,我們先把它們啟動起來。

sp-server

  • 先在MySql中創建sp-dev數據庫,導入項目doc目錄下的sa-plus.sql腳本,導入成功后將生成如下表;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 將sp-server模塊導入到IDEA中,導入成功后項目結構如下;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 修改項目的配置文件Application-dev.yml,將MySql和Redis配置修改為你自己的連接配置;
spring: 
    # 數據源配置
    datasource: 
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://127.0.0.1:3306/sp-dev?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
        username: root
        password: root

    # redis配置 
    redis:
        # Redis數據庫索引(默認為0)
        database: 1
        # Redis服務器地址
        host: 127.0.0.1
        # Redis服務器連接端口
        port: 6379
        # Redis服務器連接密碼(默認為空)
        # password: 
        # 連接超時時間(毫秒)
        timeout: 5000ms
  • 運行啟動類SpServerApplication的main方向,至此后端服務啟動成功。
2021-08-09 16:46:00.478   INFO  -->  Initializing ExecutorService 'applicationTaskExecutor'
____ ____    ___ ____ _  _ ____ _  _ 
[__  |__| __  |  |  | |_/  |___ | | 
___] |  |     |  |__| | _ |___ | | 
DevDoc:http://sa-token.dev33.cn (v1.24.0)
GitHub:https://github.com/dromara/sa-token
2021-08-09 16:46:00.744   INFO  -->  Initializing ExecutorService 'taskScheduler'
2021-08-09 16:46:00.778   INFO  -->  Starting ProtocolHandler ["http-nio-8099"]
2021-08-09 16:46:00.792   INFO  -->  Tomcat started on port(s): 8099 (http) with context path ''
2021-08-09 16:46:00.802   INFO  -->  Started SpServerApplication in 3.871 seconds (JVM running for 4.797)

------------- sa-plus (dev) 啟動成功 --by 2021-08-09 16:46:00 -------------

sp-admin

  • 將sp-admin模塊導入到IDEA中,導入成功后項目結構如下;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 打開index.html頁面,點擊右上角按鈕運行到瀏覽器即可;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 使用默認賬號密碼登錄后,即可訪問sa-plus的首頁,界面還是挺炫酷的;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 我們可以稍稍體驗下sa-plus的基礎功能,比如Redis控制臺功能,可以查看Redis狀態和管理Redis中的數據;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 還有API請求日志功能,可以查看API請求記錄和請求耗時;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 還有權限管理中的角色管理功能,可以創建角色并給角色分配權限;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 還有權限管理中的菜單管理,其實我們可以發現sa-plus中的菜單和權限是綁定在一起的,而菜單是從前端的路由中獲取的,給角色分配了菜單即分配了菜單下的權限,這樣做的話想做到接口級權限就比較麻煩了;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 還有權限管理中的用戶管理,可以管理用戶信息。
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

sp-apidoc

  • 將sp-apidoc模塊導入到IDEA中,導入成功后項目結構如下;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 打開index.html頁面,點擊右上角按鈕運行到瀏覽器即可,此時我們可以發現API文檔中還沒有任何內容。
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

代碼生成器

使用代碼生成器,可以根據數據庫表直接生成前端、后端及API文檔代碼,讓我們來體驗下它有何神奇之處。

  • 將sp-generate模塊導入到IDEA中,導入成功后項目結構如下;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 然后往MySql中導入測試數據,導入項目doc目錄下的test-data.sql腳本,導入成功后新增如下表;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 接下來修改SpGenerateApplication中的MySql連接配置和代碼生成目錄配置;
@SqlFlySetup
@SpringBootApplication
public class SpGenerateApplication {
 
 // 直接運行代碼生成器
 public static void main(String[] args) {

        // 啟動springboot   
        SpringApplication.run(SpGenerateApplication.class, args);


        // ===================================  設置連接信息  =================================== 
        FlyConfig config = new FlyConfig();
        config.setDriverClassName("com.mysql.jdbc.Driver");
        config.setUrl("jdbc:mysql://127.0.0.1:3306/sp-dev?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC");
        config.setUsername("root");
        config.setPassword("root");
        config.setPrintSql(true);        // 是否打印sql  
        FlyObjects.setConfig(config);    // 注入到框架中


        // ===================================  一些全局設置  =================================== 
        GenCfgManager.cfg
                .setProjectPath("D:/developer/demo/sa-plus/")    // 總項目地址 (生成代碼的路徑) 
                .setServerProjectName("sp-server")                // 服務端 - 項目名稱 
//         .setServerProjectName("sp-com/sp-core")   // 服務端 - 項目名稱 (sp-com多模塊版填此格式)
                .setCodePath("src/main/JAVA/")                    // 服務端代碼 - 存放路徑 
                .setPackagePath("com.pj.project")                // 服務端代碼 - 總包名 
                .setPackage_utils("com.pj.utils.sg.*")            // 服務端代碼 - util類包地址 
                .setAuthor("macrozheng");                        // 服務端代碼 - 代碼作者
    }
}
  • 然后運行啟動類SpGenerateApplication的main方法生成代碼,運行成功后,sp-server的project包下會生成后端代碼;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • sp-admin的sa-html目錄下會生成前端代碼,還會在menu-list.js中追加菜單信息;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • sp-apidoc的project目錄也下會生成API文檔代碼;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 重新運行前后端代碼后,我們暫時還無法看到新增的菜單,還需要給角色分配權限才可以查看;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 之后我們可以看到,對于商品表來說,列表頁面和添加頁面已經給我們生成好了;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 其實sa-plus是通過解析數據庫表中的注釋來生成代碼的,我們可以看下商品表的SQL語句,其中有很多包含[]的注釋,sa-plus就是根據這些規則來生成代碼的;
CREATE TABLE `ser_goods` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '記錄id [num no-add]',
  `name` varchar(200) DEFAULT NULL COMMENT '商品名稱 [text j=like]',
  `avatar` varchar(512) DEFAULT NULL COMMENT '商品頭像 [img]',
  `image_list` varchar(2048) DEFAULT NULL COMMENT '輪播圖片 [img-list]',
  `content` text COMMENT '圖文介紹 [f]',
  `money` int(11) DEFAULT '0' COMMENT '商品價格 [num]',
  `type_id` bigint(20) DEFAULT NULL COMMENT '所屬分類 [num]',
  `stock_count` int(11) DEFAULT '0' COMMENT '剩余庫存 [num]',
  `status` int(11) DEFAULT '1' COMMENT '商品狀態 (1=上架,2=下架) [j]',
  `create_time` datetime DEFAULT NULL COMMENT '創建日期 [date-create]',
  `update_time` datetime DEFAULT NULL COMMENT '更新日期 [date-update]',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1005 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='商品表n[table icon=el-icon-apple]n[fk-s js=(type_id=sys_type.id), show=name.所屬分類, drop]n';
  • 這里的規則比較多,大家可以自行對照下表查看;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 最后我們再來看下已經生成好的API文檔,商品表的CRUD接口文檔都有了,非常詳細;
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

  • 而且API文檔中還提供了接口測試功能,是不是很貼心!
還在從零開始搭建項目?推薦一款高顏值的前后端分離腳手架

 

總結

通過上面的一波實踐,我們可以發現sa-plus確實是個有意思的框架。不僅提供了項目的基礎功能,還提供了代碼生成器,可以一鍵生成前后端及API文檔代碼,大大提高了開發效率。但是沒有一種代碼生成器是萬能的,復雜的代碼還是需要手寫。sa-plus的權限功能把菜單和權限綁定在了一起,使用起來不太靈活,還是可以改進下的。

分享到:
標簽:腳手架
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定