一、Guns简介

Guns基于Spring Boot2,致力于做更简洁的后台管理系统。包含系统管理,代码生成,多数据库适配,SSO单点登录,工作流,短信,邮件发送,OAuth2登录,任务调度,持续集成,docker部署等功。支持Spring Cloud Alibaba微服务。社区活跃,版本迭代快,加群免费技术支持。

在最新版的6.1中,代码生成功能被刻意隐藏掉了,如果需要使用该功能,可通过收费购买,或者使用低版本的5.x,4.x。

我这里使用的是5.1版本。

链接地址:https://gitee.com/stylefeng/guns/tree/v5.1-final

这里也列出了部分历史版本。

版本名称

说明

地址

Guns旗舰版 v2.4

修复单数据源下事务不生效问题,现为了防止单数据源多数据源冲突,现在多数据源的配置放入multi-datasource分支维护

https://gitee.com/stylefeng/guns/tree/ultimate-v2.4/

Guns旗舰版 v2.3

强力集成atomikos,MM再也不用担心多数据源事务问题,感谢Guns二群月下魔术师兄弟贡献的解决方案

https://gitee.com/stylefeng/guns/tree/ultimate-v2.3/

Guns旗舰版 v2.2

修复日志模块,记录业务日志,部分字段缺失的问题

https://gitee.com/stylefeng/guns/tree/ultimate-v2.2/

Guns旗舰版 v2.1

菜单管理表格改为树形表格,部门增加左侧树

https://gitee.com/stylefeng/guns/tree/ultimate-v2.1/

Guns旗舰版 v2.0

基于layui的全新旗舰版,demo地址:http://demo.stylefeng.cn

https://gitee.com/stylefeng/guns/tree/ultimate-v2.0/

Guns旗舰版 v1.1

全面升级spring boot和mybatis-plus版本

https://gitee.com/stylefeng/guns/tree/ultimate-v1.1/

Guns旗舰版 v1.0

全新的UI界面,采用bootstrap 4 + vue,全新的规范化的数据库设计

https://gitee.com/stylefeng/guns/tree/ultimate-v1.0/

Guns v5.1

Guns经典版的最新版,采用bootstrap 3

https://gitee.com/stylefeng/guns/tree/v5.1-final

Guns v4.2

spring boot升级到了2.0,大大简化了前端的体积,升级了一些组件到最新版本

https://gitee.com/stylefeng/guns/tree/v4.2

Guns v3.3

模块化了整个项目,整体拆分成4个模块,增加了jwt,并集成工作流flowable 6.2.0

https://gitee.com/stylefeng/guns/tree/v3.3

Guns v2.4

基于spring boot全面升级,更加简化配置和依赖,更专注于开发业务

https://gitee.com/stylefeng/guns/tree/v2.4/

Guns v1.0

Guns的第一个版本,率先采用spring java bean方式的配置,零spring xml配置,spring用到极致

https://gitee.com/stylefeng/guns/tree/v1.0/

二、对该框架的认知

Guns框架是基于SpringBoot实现的一种快速构建项目的后台管理系统。并且内部包含代码生成功能,能够替代我们通过手工配置相关参数,完成代码的撰写,并且通过shiro框架完成权限的分配,我们只需要在权限分配页面赋予对应角色相关权限,即可完成相应授权。

由于Guns每次操作皆是全量型操作,即每次新增、更新等操作时,会对整个数据库进行全量更新,所以对于一些对响应效率较高的项目并不太适用。再者,对于一些用户权限隔离的用户,也不太适用,比如A(开发)、B(人事)、C(财务)共用同一个菜单,A用户在某个菜单做了某笔交易,具有相同权限的B用户也能够看到,C也能看到,无法实现权限与用户功能分离。

三、标志型模块使用

1) 验证码开启

首先在login.html页面中查看,会发现验证码功能其实是存在的,但是实际上并没有显示,可以推断出验证码是被隐藏了,我们只需要开启即可。而kaptcha是一款针对验证码生成的jar包。而在代码中,我们可以找到KaptchaController中的loginVali方法,在登录时会进行验证验证码。

而界面展示需要在application.yml文件中配置。将kaptcha-open配置为true即可。

在GunsProperties文件中,需要手动将kaptchaOpen配置为true。

最后重启项目即可。

2) 代码生成

该功能是为了能够简化开发代码,实现自动化生成。前提是数据库需要配置准确,数据库在application.yml文件中配置。按照如图功能配置后需要在菜单中添加新增的菜单,即可完成展示。

Guns自动化生成代码使用的更多相关文章

  1. mybatis根据表逆向自动化生成代码(自动生成实体类、mapper文件、mapper.xml文件)

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  2. Mybatis自动化生成代码

    Mybatis是Java EE中比较主流的一种持久化orm框架,其缺点是不够灵活,需要写的代码较多,包括: 一个sql-map-config.xml 对应每个表的xml文件 对应每个表的实体POJO ...

  3. Mybatis_generator自动化生成代码

    1.Run as 2.ok

  4. 【Unity】工具类系列教程—— 代码自动化生成!

    转载自:https://zhuanlan.zhihu.com/p/30716595?utm_medium=social&utm_source=qq [为什么要做自动化工具] 工具类的创建是为了 ...

  5. 使用C#通过调用minitab的COM库自动化生成报表

    本文介绍通过C#调用minitab com组建自动化生成报表的方法. 首先需要在minitab中通过手动配置的方式生成报表来得到该报表的命令行,过程如下 选择菜单“编辑器”->“启用命令”启用命 ...

  6. Jenkins+PMD构建自动化静态代码检测

    前言:软件缺陷是不可避免的,要尽量减少错误并提高软件质量,主要有两在类技术,即缺陷预防和缺陷检测 缺陷预防包括编写更好的设计规范.实施代码审核制度.运行代码静态分析工具.运行单元测试等 PMD是一种开 ...

  7. 基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v4.1.2版)

            目录:            第1版:http://blog.csdn.net/vipbooks/article/details/51912143            第2版:htt ...

  8. 搭建基于SornaQube的自动化安全代码检测平台

    一.背景和目的 近年来,随着新业务.新技术的快速发展,应用软件安全缺陷层出不穷.虽然一般情况下,开发者基本都会有单元测试.每日构建.功能测试等环节来保证应用的可用性.但在安全缺陷方面,缺乏安全意识.技 ...

  9. (Python)自动生成代码(方法一)

    在写某个平台的自动化脚本时,笔者把全部的操作都封装到了两个类中,page.py和commonpage.py: page.py部分代码: class BasePage(object): ''' 页面基础 ...

随机推荐

  1. C语言精华——内存管理,很多学校学习不到的知识~

    在编写程序时,通常并不知道需要处理的数据量,或者难以评估所需处理数据量的变动程度.在这种情况下,要达到有效的资源利用--使用内存管理,必须在运行时动态地分配所需内存,并在使用完毕后尽早释放不需要的内存 ...

  2. django中的积累

    只要继承了model.Model, 就会生成一个新的表,但是,如果在Meta方法中添加abstract=True,就不会产生新的表,而是作为一个基类存放多个表共同拥有的方法和字段等 from djan ...

  3. git的使用以及git和码云的连接

    什么是git? ​ Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.可以保存许多的历史版本,并且可以多人同时进行开发. 分布式版本控制系统 ​ 每个人拥有该项目 ...

  4. 老猿学5G扫盲贴:3GPP中的5G计费架构

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.计费逻辑架构和信息流 在32240子系列文档内 ...

  5. PyQt(Python+Qt)学习随笔:QTableWidgetItem项whatsThis、toolTip、statusTip提示信息访问方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget表格部件的QTableWidgetItem项提示信息包括工具栏提示.状态栏提 ...

  6. Python中使用“模块名.__all__”查看模块建议导出的属性

    在<第10.5节 使用__all__定义Python模块导入白名单>中,老猿介绍了在自定义模块中使用定义__all__属性来提供模块对外可见的白名单,使用该机制除了可以定义访问的白名单外, ...

  7. 第14.6节 使用Python urllib.request模拟浏览器访问网页的实现代码

    Python要访问一个网页并读取网页内容非常简单,在利用<第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头>的方法构建了请求http报文的请求头情况下,使 ...

  8. PyQt程序执行时报错:AttributeError: 'winTest' object has no attribute 'setCentralWidget'的解决方法

    用QtDesigner设计了一个UI界面,保存在文件Ui_wintest.ui中,界面中使用了MainWindow窗口,窗口名字也叫MainWindow,用PyUIC将其转换成了 Ui_wintest ...

  9. Springboot中redisTemplate乱码或json转换问题

    问题1 用RedisTemplate存入map值的时候,用rdm可视化打开,看到的是转码之后的数据,如图: 存入的方法为: public boolean hmset(String key, Map&l ...

  10. 第 3 篇 Scrum 冲刺博客

    每天举行会议 会议照片: 昨天已完成的工作与今天计划完成的工作及工作中遇到的困难: 成员姓名 昨天完成工作 今天计划完成的工作 工作中遇到的困难 蔡双浩 了解任务,并做相关学习和思考,创建基本的收藏夹 ...