开源项目springboot2.2 + mysql8.0 +redis+shiro

项目介绍

  • 面向学习型的开源框架,简洁高效,减少过渡封装,展现技术本质
  • Springboot作为基础框架,使用mybatis作为持久层框架 mysql8.0
  • 使用官方推荐的thymeleaf做为模板引擎,shiro作为安全框架,主流技术,一网打尽
  • 极简配置,一键前后台代码生成

功能简介

1. 用户管理
2. 角色管理
3. 部门管理
4. 菜单管理
5. 系统日志
6. 代码生成
8. 系统监控
9. 计划任务 推荐大家用xxl-job
10.
在线用户
11. 通知公告

 

4、平台

  • 服务器中间件:SpringBoot内置
  • 数据库支持:目前仅提供MySql数据库的支持,但不限于数据库,平台留有其它数据库支持接口, 你可以很方便的更改为其它数据库,如:SqlServer 2008、MySql 5.5、H2等
  • 开发环境:Java、Eclipse Java EE 、Maven 、Git,IDEA

安全考虑

  1. 开发语言:系统采用Java 语言开发,具有卓越的通用性、高效性、平台移植性和安全性。
  2. 分层设计:(数据库层,数据访问层,业务逻辑层,展示层)层次清楚,低耦合,各层必须通过接口才能接入并进行参数校验(如:在展示层不可直接操作数据库),保证数据操作的安全。
  3. 双重验证:用户表单提交双验证:包括服务器端验证及客户端验证,防止用户通过浏览器恶意修改(如不可写文本域、隐藏变量篡改、上传非法文件等),跳过客户端验证操作数据库。
  4. 安全编码:用户表单提交所有数据,在服务器端都进行安全编码,防止用户提交非法脚本及SQL注入获取敏感数据等,确保数据安全。
  5. 密码加密:登录用户密码进行SHA1散列加密,此加密方法是不可逆的。保证密文泄露后的安全问题。
  6. 强制访问:系统对所有管理端链接都进行用户身份权限验证,防止用户直接填写url进行访问。

系统权限组件、数据权限组件、数据字典组件、核心工具组件、视图操作组件、工作流组件、代码生成等。 前端界面风格采用了结构简单、性能优良、页面美观大气的Twitter Bootstrap页面展示框架。 采用分层设计、双重验证、提交数据安全编码、密码加密、访问验证、数据权限验证。 使用Maven做项目管理,提高项目的易开发性、扩展性。

 

项目模块介绍:

platform-api

前后端分离  对前端的统一接口处理,其中包含了 jwt的统一登录鉴权   还有service后台逻辑

platform-gateway

网关项目 做统计的内部转发  用于防范攻击等等,类似nginx的代理但是功能要多。有实现 redis的限流(目前根据ip来限流),熔断策略(目前仅用了超时的熔断)

还有结合nacos的配置管理跟注册服务。动态修改限流的策略。后期需要完善,前端可以直接用nginx来做简单的转发。后期数据量上来考虑完善这个项目 来做内部的网关

platform-jwt

工具类   简单jwt做鉴权,因为有秘钥等常量,同时websocket里面也有用户登录的操作,所以独立出来几个项目一起用

platform-mgr

后台管理项目   引用service项目 做后台的逻辑处理

platform-service

整个项目的  db+service  放到一起了,为了减少springcloud太多服务的坑,整合的一个核心的大的工具包

包含了 redis mysql(主从) 逻辑处理

platform-task

分布式任务调度执行项目    xxl-job项目做分布式任务调度。这个项目专门用户执行分布式任务。 比如获取第三方订单的记录。

每天统计生成报表等等。等。

platform-websocket

netty 实现消息通信  统计在线人数,发送消息等等。连接建立时前端可带入token 用于记录在线游客还是已注册的

 

nacos 注册中心跟配置管理中心   目前主要用注册中心  用户发现服务是否正常。 配置管理跟gateway结合着用,做网关的一些策略跟动态配置文件等。该项目为阿里云的开源项目 注册中心+配置管理。   有需要可以去学习一下http://dubbo.apache.org/zh-cn/docs/user/references/registry/nacos.html

 

xxl-job  分布式任务调度中心,(类似定时任务) 跨平台性,可以将不同项目的任务集中管理,查询日志 后台可以查询每个任务的执行日志

xxl-job  开源地址:https://github.com/xuxueli/xxl-job

项目结构

config放项目的配置文件   丢弃springcloud的配置文件项目

 

线上项目部署 将 config 改成正式配置 直接放入跟jar同级目录就行  还有lib。    所以每次上传就不需要单独修改配置文件  跟lib一起打包,减少项目体量 方便部署

config

lib

放到jar同级目录启动即可

nohup java -Dloader.path=/lib -jar /xxx.jar &

 

所用框架

前端
1. Bootstrap
2. jQuery
3. bootstrap-table
4. Layer+layuiMini  
三级菜单解决 项目比较大菜单多的困扰
5. jsTree 
6. summernote
7. jquery-validate
8. jquery-treegrid

后端
1. SpringBoot 
2. MyBatis
3. Thymeleaf
4. Shiro+redis
5. druid
6. Ehcache

 

Git地址:https://gitee.com/super222/th-platform-master

 

 

 

 

 

 

 

 

 

 

项目只是初期的一个底层技术架构,业务不是太多。   可以方便大家做二次开发。 

 

发布了35 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u010494101/article/details/104277490