狂神链接:
SpringBoot项目实战:企业项目管理系统_哔哩哔哩_bilibili
项目说明
- lenos(p为spring boot版本扩展名)一款快速开发模块化脚手架,采用spring boot 2.0.1+spring+SpringMvc+mybatis+shiro+swagger+ehcache+quartz+freemarker+layui技术开发;实现功能有系统模块:菜单管理、用户管理、角色管理,系统监控:系统日志、接口api、sql监控。本项目会一直维护并集成新的技术,给您的开发节约时间成本,本项目拥有非boot版本。
未来蓝图
功能说明
-
项目目前拥有
-
系统管理:菜单管理、用户管理、角色管理
-
统一查询 pagehelper分页,查询调用BaseServiceImpl show model set数据,传入T,配合xml编写,即可自定义查询。
-
采用shiro技术,可配置化权限管理,精确到按钮(也可以是某一元素)功能分配
-
登录次数校验,超出定义次数后冻结一段时间账号
-
系统监控:系统日志、接口api、系统监控、可配置定时任务
-
前端可配置化定时任务。
-
采用swagger可视化出实时方法格式以及数据属性,采用阿里druid监控sql。
-
工作流程管理:完全实现模块化,无侵入。监听用户角色信息到引擎数据表中
-
流程管理:动态给发布流程分配角色,无需手动写死,灵活可变
-
模块列表:新建、编辑、发布流程,前端实现完全可配置化建立流程图
-
请假流程:提供一个请假示例,让您很快熟悉流程
-
待办任务:个人需要办理的流程任务
-
如果不喜欢工作流,可以直接删除 len-activiti模块
并在len-web/pom.xml、父 pom.xml 删除依赖以及模块,删除application.java 中对activiti的扫描即可完全删除工作流模块。
更新说明
- 18/1/28 添加工作流模块,前端页面优化,更加有线条
- 18/4/21 增加菜单编辑、选择图标功能,前端js封装,修复工作流程现存bug
- 18/4/23 修复头像上传
- 18/5/06 升级spring boot 到2.0.1
- 18/6/12 增加sqlserver支持,脚本在db文件夹下, 只需要在application.yml 切换下active 即可切换数据源
- 18/6/19 集成丰富持久化插件tkmapper
- 18/12/11 添加博客功能模块,集成redis缓存
- 19/4/5 优化shiro配置,增加 oracle支持 群(137738503)里有配置好的源码
- 19/4/30 升级admin监控
- 21/3/21 前端优化 抽离公共模板和js方法 菜单页面 重新集成树形表格,更加友好
博客采用vue前后分离基于jwt鉴权,博客单独分离出一个项目地址:len-blog-ui
头像说明
修改 application.yml imagePath 路径 把image文件夹图片赋值进路径,即可正常展示头像
启动说明
git clone https://gitee.com/bweird/lenosp.git mvn clean package mvn package java -jar len-web.jar
- db使用mysql,项目数据库在 根目录db文件夹下, 导入数据库后 设定数据库用户名密码 在文件lenosp\len-web\src\main\resources\application.yml中 项目开始会报实体类 get set错误,这是正常的,因为本项目entity使用的是 lombok 大大简化了代码量 您可以直接运行,项目可以正常启动。 如何消除? 如果您使用的为idea 只需要file -> setting->plugins->Browse Repositeories 输入 lombok 集成插件重启idea即可消除错误 如果您使用 eclipse 需要下载 lombk jar包 手动集成。
技术
- jdk:1.8
- 核心框架:spring boot 2.1.12.RELEASE
- 安全框架:Apache Shiro
- 工作流引擎:Activiti
- 数据库连接池:druid
- 视图框架:spring mvc
- 持久层框架:MyBatis
- 模板引擎:freemarker
- 缓存:redis、ehcache
- 定时:quartz 2.3.0
- 前端页面:layui
- 博客前端:vue、iview
自学过程
1、项目了解
2、搭建数据库
已在db文件中找到建库语句,新建数据库ok
3、启动项目,登录成功后
4、架构分离
模块len_pdms_model 和len_pdms_service_api 和 len_pdms_service_provider 和 len_pdms_web都是我们新建的要写代码的。
len_pdms_model:实体类和vo(rpc数据传输,实体类和vo需要继承序列化Serializable接口)
len_dpms_service_provider:
编写mapper(使用@mapper注解:见博客springboot集成mybatis)和service接口实现类
len_dpms_service_api:编写service接口
len_dpms_web(web就是消费者):编写controller层和spring配置文件及mybatis配置文件(前端页面项目骨架代码都在len_pdms_sys模块)
租户注册功能思路:这里使用的是dubbo+zookeepr,使用rpc通信,我们需要在服务提供者的微服务接口实现类上使用@service注解(//dubbo新版已更名@service注解为@dubboservice,必须添加@service注解)
在服务消费者微服务的service中使用@Reference引用远程服务(@Reference //远程引用指定的服务,他会按照全类名进行匹配,看谁给注册中心注册了这个全类名,新版本是:DubboReference)
SpringBoot狂神25-(Dubbo和Zookeeper集成)_keep one's resolveY的博客-CSDN博客_springboot整合dubbo+zookeeper
课程记录:
学习思路:
Session通过redis传递逻辑:
session代码截图