文章插图
- 还有权限管理中的菜单管理,其实我们可以发现sa-plus中的菜单和权限是绑定在一起的,而菜单是从前端的路由中获取的,给角色分配了菜单即分配了菜单下的权限,这样做的话想做到接口级权限就比较麻烦了;
文章插图
- 还有权限管理中的用户管理,可以管理用户信息 。
文章插图
sp-apidoc
- 将sp-apidoc模块导入到IDEA中,导入成功后项目结构如下;
文章插图
- 打开index.html页面,点击右上角按钮运行到浏览器即可,此时我们可以发现API文档中还没有任何内容 。
文章插图
代码生成器
使用代码生成器,可以根据数据库表直接生成前端、后端及API文档代码,让我们来体验下它有何神奇之处 。
- 将sp-generate模块导入到IDEA中,导入成功后项目结构如下;
文章插图
- 然后往MySql中导入测试数据,导入项目doc目录下的test-data.sql脚本,导入成功后新增如下表;
文章插图
- 接下来修改SpGenerateApplication中的MySql连接配置和代码生成目录配置;
@SqlFlySetup@SpringBootApplicationpublic class SpGenerateApplication {// 直接运行代码生成器 public static void main(String[] args) {// 启动springbootSpringApplication.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);// 是否打印sqlFlyObjects.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';
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Mysql5.7主从配置
- 金银花的十大功效,十大名茶的功效与作用
- 上古卷轴5艾瑞斯任务?上古卷轴5美瑞蒂亚随从
- 业绩激励语?业绩破零激励短信
- |坚持用这个方法洗头发,从此告别干枯打结
- 17年迈腾保养灯归零方法图解?老迈腾保养灯归零方法
- 不要等我变了才怀念从前的我?我变了你又说怀念以前的我
- 运动|从帕梅拉到尹正到刘畊宏,为什么减了这么久,你还是没瘦?
- 想了解低代码?不妨从这四款开源低代码工具开始
- 从开发者角度谈对Linux内存管理的理解