KVF-Admin:基于Spring Boot、MyBatis、Shiro与Layui的轻量级快速开发框架
摘要:
随着信息技术的飞速发展,软件开发的高效性和便捷性成为了开发者的追求。KVF-Admin作为一款轻量级的快速开发框架,集成了Spring Boot、MyBatis、Shiro和Layui等主流技术,为开发者提供了一个高效、灵活的开发环境。本文将对KVF-Admin框架进行详细的技术分析,并探讨其在实际开发中的应用价值。
一、引言
在软件开发领域,快速开发框架的出现极大地提高了开发效率,减少了重复劳动。KVF-Admin作为一款集成多项先进技术的快速开发框架,旨在帮助开发者快速构建稳定、安全的后台管理系统和工作流OA系统。
kvf-admin是一套快速开发框架、脚手架、后台管理系统、权限系统,上手简单,拿来即用。为广大开发者去除大部分重复繁锁的代码工作,让开发者拥有更多的时间陪恋人、家人和朋友。
-
后端采用spring boot、mybatis(已集成mybatis-plus增强插件,开发更迅速,可查看官方文档了解更多:mybatis-plus)、shiro框架
-
前端采用layui作为UI框架,实现90%的移动端自适应,支持主题更换
-
提供代码生成器(wiki使用文档),只需编写20%左右的代码,剩下全部自动生成;支持一键及批量功能模块生成,并支持一定程度上的自定义配置并生成代码,相对比较灵活
二、KVF-Admin框架介绍
技术特点分析:
-
Spring Boot:Spring Boot作为当前最流行的Java开发框架,具有快速构建项目、简化配置、内置众多功能等特点。KVF-Admin采用Spring Boot作为后端基础,为开发者提供了稳定、高效的开发环境。
-
MyBatis与MyBatis-Plus:MyBatis作为持久层框架,具有简单易学、灵活多变的特点。而MyBatis-Plus作为MyBatis的增强插件,提供了更多实用的功能和优化。KVF-Admin通过集成MyBatis和MyBatis-Plus,实现了对数据库的高效操作。
-
Shiro:Shiro是一个强大且易用的Java安全框架,提供了身份验证、授权、加密和会话管理等功能。KVF-Admin采用Shiro作为权限管理框架,确保了系统的安全性。
-
Layui:Layui作为一款轻量级的前端UI框架,具有简洁、模块化的特点。KVF-Admin采用Layui作为前端框架,实现了良好的用户界面和移动端自适应。
基础框架功能模块
-
用户管理
-
部门管理
-
菜单管理
-
角色管理
-
字典管理
-
操作日志
-
代码生成
-
组件管理
kvf-admin-activiti(工作流OA版本)
kvf-admin-activiti是基于kvf-admin脚手架集成了工作流引擎(activiti6),并封装了核心工作流程(OA)功能模块。如下:目前工作流(OA)模块还处于初始阶段,代码也比较粗糙,后续再不断完善优化。
备注:工作流版本在【activiti】分支
-
核心API(支持启动流程、提交任务、驳回、驳回任意环节、驳回首环节、撤回、挂起/激活流程等API)
-
流程管理(支持流程在线设计器、发布/部署、挂起、激活、导出/导入、配置表单、启动、删除)
-
表单管理(支持快速表单在线设计器、增/删/改/查、预览表单)
-
我的流程(发起流程申请)
-
我的待办(支持快速办理、查看任务表单办理、历史审批意见、流程实时流转图等)
-
我的已办(支持撤回功能)
-
我的申请(查看所有当前用户申请过的流程情况)
-
下一步计划,期待大家的反馈意见!
更新日志
👳👉点我点我点我
项目结构树
kvf-admin │ │ pom.xml maven依赖管理pom文件 │ ├─sql │ kvf_sys.sql 项目初始化数据表及基础数据sql脚本 │ └─src ├─main │ ├─java │ │ └─com │ │ └─kalvin │ │ └─kvf │ │ │ KvfAdminApplication.java 项目启动类 │ │ │ │ │ ├─common 通用模块 │ │ └─modules 功能模块 │ │ ├─generator 代码生成器模块 │ │ └─sys 系统模块(核心) │ └─resources │ │ application.yml spring boot 配置文件 │ │ ehcache.xml ehcache缓存配置文件 │ │ │ ├─mapper mybatis mapper文件 │ ├─static 静态资料 │ └─templates 模板 │ │ 403.html 403页面 │ │ home.html 系统首页页面 │ │ index.html 主页 │ │ login.html 登录页 │ │ │ ├─common 通用模板 │ │ base.html │ │ sys_tpl.html │ │ │ ├─generator 生成器模板 │ │ │ └─sys 系统页面模板 │ └─test 单元测试块
软件需求
-
jdk8+
-
mysql5.7+
所用技术
前端
-
jQuery
-
layui v2.5.6 (UI框架)
后端
-
spring boot v2.2.4.RELEASE
-
Mybatis
-
Mybatis-plus v3.3.0 (mybatis增强插件,无侵入。非常强大的插件,除了联表操作,几乎都可以使用它的sql条件构造器完成)
-
Shiro v1.4.0
-
Druid v1.1.21
-
ehcache
-
redis
-
hutool-all v4.5.1 (java通用工具类,此包几乎包括了所有常用的工具方法,你也可以按需引入相应工具模块包)
项目特点
-
非常精简且轻量级的权限系统,代码简洁易懂,无论学习还是项目中应用,都是非常简单易上手的项目
-
拥有界面配置化代码生成器,支持一键生成及简单自定义配置生成代码
-
自动过滤输入的非法字符串,防止XSS攻击
-
使用ehcache + redis作为缓存,对需要加入缓存的方法上添加@Cacheable注解即可(你也可以使用redisTemplate添加获取缓存),提升系统运行速度
-
支持日志记录,可在需要加入日志操作记录的controller方法上添加@Log("业务操作备注")即可完成日志记录
-
系统全局统一异常处理,所有异常信息统一处理返回R对象,前端处理提示信息更方便
-
支持工作流(OA)功能
-
完美支持多种部署方式(jar、tomcat、docker等)
本地部署
-
通过git/gitee下载源码(推荐使用git,因为gitee不是实时更新的),若是工作流OA版本,请clone activiti分支
-
创建数据库:执行sql/kvf_admin.sql脚本创建数据库及表并初始化系统基础数据,若是工作流OA版本需要额外执行sql/kvf_admin_activiti.sql脚本
-
修改开发环境配置文件application-dev.yml,配置数据库账号和密码
-
开发工具idea或eclipse还需要安装lombok插件,否则会提示找不到实体类的的get/set方法
-
运行KvfAdminApplication.java,启动项目【kvf-admin】
-
idea启动访问:http://localhost/【一般idea都会自动去掉项目名】【这里使用80端口】
-
eclipse启动访问:http://localhost/kvf-admin【这里使用80端口】
-
账号密码:admin/123456
linux部署
注意:以下三种方式部署前,记得初始化数据库哦
打包
开发环境(dev):
mvn package -P dev
测试环境(test):
mvn package -P test -Dmaven.test.skip=true
生产环境(prod):
mvn package -P prod -Dmaven.test.skip=true
jar包方式部署
项目已解决以jar包运行的情况下,无法读取文件等各种问题,所以放心使用
运行
nohup java -jar kvf-admin.jar &
tomcat部署
打包前先修改pom.xml的打包方式为war
<packaging>war</packaging>
运行
把war包拷贝到tomcat的webapps目录下,然后进入bin目录执行:
./startup.sh
docker部署
前提:安装docker及docker-compose
进入kvf-admin目录,在已打包(上面打包步骤)的情况下,构建docker镜像
mvn docker:build
进入./docker-compose目录
修改相应docker-compose配置(可选)
vim docker-compose.yml vim .env
运行(启动所有镜像)
docker-compose up -d
或者启动指定镜像
docker-compose up -d kvf-admin
项目演示
-
演示地址:http://kvfadmin.kalvinbg.cn
-
账号密码:test/123456
系统效果图展示
开发指南
-
前端通用配置js【kconfig.js】
-
前端通用工具js【kcommon.js】
-
前端静态文件引用统一管理配置【base.html】,在需要引用里面的配置的页面上引用即可,如引用通用的css:
<link th:replace="common/base::static"/>
-
后端自定义日志注解@Log("业务操作说明")[com.kalvin.kvf.common.annotation.Log],在需要加入日志的controller方法上加这个注解即可
-
缓存使用点我:对需要加入缓存的方法上添加
@Cacheable(value="cache_name")
注解即可,同时需要在对应的方法上加上更新或删除缓存注解@CacheEvict(value = "cache_name", allEntries = true)
;也可以使用redisTemplate添加删除更新缓存 -
代码生成器使用文档点我
-
Spring上下文工具【SpringContextKit.java】,可使用它手动获取指定bean。如
IUserService userService = SpringContextKit.getBean(IUserService.class);
-
自定义异常处理类【KvfException.java】,可用于业务层【service】抛出业务异常,如:
throw new KvfException("不存在的任务ID");
,前端可接收到这个提示信息 -
统一接口返回数据封装类【R.java】,可用于控制层【controller】返回成功或失败等数据。如
R.ok(data); 或 R.fail("验证码不正确");
-
开发环境【dev】默认关闭登录验证码,若需要开启验证码登录可在application-dev.yml配置开启
-
通用文件上传接口:CommonController->fileUpload
三、KVF-Admin框架特点
-
快速开发:KVF-Admin提供了代码生成器,开发者只需编写少量代码,即可自动生成大部分功能模块,大大提高了开发效率。
-
灵活配置:代码生成器支持一定程度的自定义配置,开发者可以根据自己的需求灵活生成代码。
-
移动端自适应:前端采用Layui框架,实现了90%的移动端自适应,为用户提供了良好的使用体验。
-
强大的权限管理:基于Shiro框架的权限管理,确保了系统的安全性和稳定性。
四、应用案例
本部分将结合实际项目案例,探讨KVF-Admin框架在实际开发中的应用价值。通过案例分析,展示KVF-Admin如何帮助开发者快速构建高效、稳定的后台管理系统和工作流OA系统。
五、结论
KVF-Admin作为一款轻量级的快速开发框架,集成了Spring Boot、MyBatis、Shiro和Layui等主流技术,为开发者提供了一个高效、灵活的开发环境。通过对其技术栈和特点的分析,以及实际应用案例的探讨,可以看出KVF-Admin在快速开发领域具有广泛的应用前景和实用价值。
项目下载地址:
https://gitee.com/kalvinmy/kvf-admin?_from=gitee_search
欢迎加入“前端组件开发学习”交流群,一起学习成长!可关注 “前端组件开发” 公众号后,私信后申请入群。