vlambda博客
学习文章列表

高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

大家好,我是御风!

俗话说工欲善其事,必先利其器!想做项目(接私活),如果从零开始搭建是一件令人很头痛的事情。今天发现一款高颜值+前后端分离+代码生成器+开源的基于SpringBoot快速开发神器(Sa-plus)!内置代码生成器,框架集成JavaWeb开发常见功能,高自动化代码生成!推荐给大家哦!



Sa-plus简介



Sa-plus 是一个基于springboot的快速开发框架, 内置代码生成器。


项目优点:

1、框架集成JavaWeb开发常见功能,如:文件上传、角色授权、全局异常处理、redis控制台、API日志统计、全局配置、跨域处理、 统一的弹窗封装 等等,让你不再为项目的基础设施劳神费心!

2、高自动化代码生成:普通input、多行文本域、富文本、枚举按钮、日期控件、图片上传、音频上传、视频上传、 多图上传、树形表格、连接外键、聚合外键等等,你只需写上简单的表注释,即可直接生成完善的增删改查!

3、提供两套UI皮肤:基于 iframe 的纯html版、基于 vue-cli 的单页版,适合不同团队技术栈

4、提供微服务版实现,定时同步更新:https://gitee.com/click33/sp-cloud


高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!



高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

项目技术栈



后台实现技术:SpringBoot、Mybatis-Plus、PageHelper插件、Druid、Redis、Sa-Token、Lombok、FastJson、Hutool等


数据库:推荐MySQL 5.7


前台实现技术:Sa-admin、Vue、Element-Ui、Layer、WangEditor、jQuery、Swiper、Echarts等


接口文档:sa-doc



高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

后端代码介绍



1、各包说明

  • sp-server:java服务端代码

  • sp-admin:后台管理页面

  • sp-apidoc:api接口文档页面

  • sp-generate:代码生成器

  • sp-devdoc:sa-plus使用文档

  • sp-com:java服务端代码 - maven多模块版

  • doc:其它文件,例如:sql脚本


2、详细说明

├─current            存放有关全局行为的一些包
│  ├─ config                项目配置类    ( yml 里 spring.myconfig 的相关配置会映射到MyConfig.java类属性中 )
│  ├─ global                项目全局行为 (全局日志与全局异常处理)
│  ├─ mybatis            mybatis 相关配置(mapper.xml文件热刷新配置)
│  ├─ satoken            sa-token 相关配置 
│  │  CorsFilter.java        解决跨域问题的过滤器
│  │  SaFastPrint.java        sa-plus启动打印字符画
│  │ 
├─project        项目模块包,按表分包 
│  │ 
├─project4sp        sa-plus内置模块包 ,按表分包 
│  │ 
├─utils                工具类包 
│   ├─sg                sa-plus内置工具类包 
│   │       AjaxError.java        异常判断工具类 
│   │       AjaxJson.java        全局controller返回值工具类
│   │       NbUtil.java            一些常见util方法
│   │       SoMap.java            Map类优化
│   │       WebNbUtil.java        有关web的一些工具类 
│   │  JHttpUtil.java        java访问http服务工具类 
│   │  LogUtil.java            log打印工具类 
│   │  Ttime.java            计时器工具类 
│   
├── SpServerApplication.java        启动类 



高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

前端代码介绍



├─sa-html            项目模块代码存放路径
├─sa-html-sp        sa-plus内置模块存放路径 
├─sa-resources        sa-admin 资源文件存放路径 
│  │  menu-list-sp.js        sa-plus 内置菜单文件 
│  │  menu-list.js            自定义菜单文件 
│  │  sa-code.js            sa-admin初始化代码文件 
│  
├─static            静态文件存放路径
│   │  sa.css            全局样式存放路径
│   │  sa.js            全局js存放路径,包含一系列工具类
│ 
│ index.html        首页
│ login.html        登录页
│ main.html        首屏页



高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

接口文档代码介绍



├─project        文档存放路径 
│      xxx.md    
├─sa-lib        sa-doc 相关资源 
│  index.html    首页 
│  _sidebar.md    目录树定义文件 


高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

快速开始



1. 创建数据库

  1. 推荐数据库版本mysql 5.7

  2. 在mysql中创建数据,名字为:sp-dev

  3. 导入脚本:doc/sa-plus.sql, 这个是sa-plus运行的内置库,必须存在,导入成功后如下图所示:

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

2. 导入服务端代码

  1. 在后端ide中导入项目 sp-server,此为接口服务端代码基架

  2. 高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  3. 打开application.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
  4. (有关project4sp下的代码都是sa-plus内置代码,最好别动,你的模块包都写在project包下即可)

  5. 运行启动类SpServerApplicationmain方向,至此后端服务启动成功

    2022-04-05 16:46:00.478   INFO  -->  Initializing ExecutorService 'applicationTaskExecutor'
    ____ ____    ___ ____ _  _ ____ _  _ 
    [__  |__| __  |  |  | |_/  |___ |\ | 
    ___] |  |     |  |__| | \_ |___ | \| 
    DevDoc:http://sa-token.dev33.cn (v1.24.0)
    GitHub:https://github.com/dromara/sa-token
    2022-04-05 16:46:00.744   INFO  -->  Initializing ExecutorService 'taskScheduler'
    2022-04-05 16:46:00.778   INFO  -->  Starting ProtocolHandler ["http-nio-8099"]
    2022-04-05 16:46:00.792   INFO  -->  Tomcat started on port(s): 8099 (http) with context path ''
    2022-04-05 16:46:00.802   INFO  -->  Started SpServerApplication in 3.871 seconds (JVM running for 4.797)

    ------------- sa-plus (dev) 启动成功 --by 2022-04-05 16:46:00 -------------

3. 导入后台管理

  1. 在前端ide中导入 sp-admin, 此为后台管理代码基架

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  2. 打开index.html,预览html即可启动运行

高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  1. (有关sa-html-sp下的代码都是sa-plus内置代码,最好别动, 你的代码写在sa-html\文件夹下)

  2. (menu-list-sp.js是内置菜单文件,不要动,如果要添加路由,请在menu-list.js里添加(如果找不到,请新建,menu-list-sp.js目录同级))

  3. 使用默认账号密码登录后,即可访问sa-plus的首页,界面还是挺炫酷的高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  4. 以下是sa-plus中登录、控制台的Redis控制台、API请求日志、角色列表、系统对公配置、商品列表等部分功能的截图。

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  5. 高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

4. 导入接口文档

  1. 接口文档的导入方式与后台管理类似

  2. 在前端ide中导入 sp-apidoc, 此为接口文档基架

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  3. 启动运行

  4. 基于markdown格式编写接口文档,菜单树定义在 _sidebar.md,你可以新建project文件夹书写接口文档。

高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

5、导入代码生成器

导入测试sql

  • 文件:doc/test-data.sql, 是为了测试代码生成准备的库,请先在数据库中导入(和之前sp-dev在同一个库中,不必新建库)

高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

导入代码生成器

  1. 在后端ide中导入项目 sp-generate,此为代码生成器

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  2. 导入项目后,直接运行main方法就可以生成代码

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  3. 接下来修改 SpGenerateApplication中的MySql连接配置和代码生成目录配置;
  4. @SqlFlySetup
    @SpringBootApplication
    public class SpGenerateApplication {
     
     // 直接运行代码生成器
     public static void main(String[] args) {

            // 启动springboot   
            SpringApplication.run(SpGenerateApplication.classargs);


            // ===================================  设置连接信息  =================================== 
            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("e:/project/test/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");                        // 服务端代码 - 代码作者
        }
    }
  5. 然后运行启动类 SpGenerateApplicationmain方法生成代码,运行成功后, sp-serverproject包下会生成后端代码;
  6. 高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  7. sp-adminsa-html目录下会生成前端代码,还会在 menu-list.js中追加菜单信息;

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  8. sp-apidocproject目录也会生成API文档代码;

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  9. 重新运行前后端代码后,我们暂时还无法看到新增的菜单,还需要给角色分配权限才可以查看;

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  10. 之后我们可以看到,对于商品表来说,列表页面和添加页面已经给我们生成好了;

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  11. 其实 sa-plus是通过解析数据库表中的注释来生成代码的,我们可以看下商品表的SQL语句,其中有很多包含 []的注释, sa-plus就是根据这些规则来生成代码的;
    CREATE TABLE `ser_goods` (
      `id` bigint(20NOT NULL AUTO_INCREMENT COMMENT '记录id [num no-add]',
      `name` varchar(200DEFAULT NULL COMMENT '商品名称 [text j=like]',
      `avatar` varchar(512DEFAULT NULL COMMENT '商品头像 [img]',
      `image_list` varchar(2048DEFAULT NULL COMMENT '轮播图片 [img-list]',
      `content` text COMMENT '图文介绍 [f]',
      `money` int(11DEFAULT '0' COMMENT '商品价格 [num]',
      `type_id` bigint(20DEFAULT NULL COMMENT '所属分类 [num]',
      `stock_count` int(11DEFAULT '0' COMMENT '剩余库存 [num]',
      `status` int(11DEFAULT '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';
  12. 这里的规则比较多,大家可以自行对照下表查看;

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  13. 最后我们再来看下已经生成好的API文档,商品表的CRUD接口文档都有了,非常详细;

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  14. 而且API文档中还提供了接口测试功能,是不是很贴心!

    高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!



高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

总结



通过上面的操作下来,我们发现sa-plus真的是一个非常有意思的快速开发框架,不仅有javaweb的开发常见功能,还有代码生成器,只需声明简单的表注释,即可生成完善的增删改查,更能一键生成前后端以及API文档。当然代码生成器当然也不是万能的,业务复杂的情况还是需要我们程序员自己来操作。



高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

  

后台回复口令:520   获取项目

高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!

高颜值+前后端分离+代码生成器+开源,这款SpringBoot开发框架,真爽!




主页菜单有架构师相关资料,点击学习资料菜单免费获取!

如有收获,点个在看,诚挚感谢