从零开始搭建项目,没有好用的脚手架怎样行!最近发现一款高颜值的前后台分离脚手架
sa-plus
,自带代码生成器,可一键生成前台、后台、API文档代码,推荐给大家!
一款基于SpringBoot的快速开发框架,内置代码生成器。
项目特点:
sa-plus
前后台使用的技术栈还是非常主流的,下面我们来看下。
使用技术栈
模块详情
sp-server
、sp-admin
、sp-apidoc
为sa-plus的主要项目模块,我们先把它们启动起来。
sp-server
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: dromara/sa-token2021-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
模块导入到IDEA中,导入成功后项目结构如下;
打开index.html
页面,点击右上角按钮运行到浏览器就可,此时我们可以发现API文档中还没有任何内容。
使用代码生成器,可以根据数据库表直接生成前台、后台及API文档代码,让我们来体验下它有何神奇之处。
sp-generate
模块导入到IDEA中,导入成功后项目结构如下;doc
目录下的test-data.sql
脚本,导入成功后新添加如下表;SpGenerateApplication
中的MySql连接配置和代码生成目录配置;@SqlFlySetup@SpringBootApplicationpublic 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-a
通过上面的一波实践,我们可以发现sa-plus的确是个有意思的框架。不仅提供了项目的基础功能,还提供了代码生成器,可以一键生成前后台及API文档代码,大大提高了开发效率。但是没有一种代码生成器是万能的,复杂的代码还是需要手写。sa-plus的权限功能把菜单和权限绑定在了一起,使用起来不太灵活,还是可以改进下的。
参考资料
官方文档:http://sa-plus.dev33.cn/
项目地址
https://gitee.com/click33/sa-plus
手机电脑双端版中国风商务类源码 画册印刷类公司整站源码
微信二维码导航源码微信群公众号推广发布平台源码带手机版带数据
ecshop小京东商城v5.0三级分销拼单砍价微信支付宝支付阿里大鱼
传奇页游【龙城传奇微变】一键网页游戏服务端+开区网站功可以站+详细架设修改教程
响应式网站模板 PHP伪静态企业源码html5 手机站自适应带后端
PHP高端医疗器械网站源码 口腔医疗美容机构网站模板带手机版数据同步
PHP进销存源码uniapp全开源ERP多仓库管理系统网络版pc+app移动端
卡通404页面模板,倒计时自动跳转源码,精美个性化404单页面
C# RabbitMQ实例 源码下载
(自适应手机版)响应式新闻资讯网站源码 HTML5个人技术博客类织梦模板