学习笔记:开源项目框架汇总【留着以后可能有用】

概述

有时自己开发一个项目从头到尾搭建核心框架有点痛苦,因此我们可以找一下开源通用的Demo进行参考、改造以进行快速开发。毕竟站在巨人的肩膀上,必定事半功倍。

开源项目列表

  • renren-fast

  1. renren-fast是一个轻量级的,前后端分离的Java快速开发平台,能快速开发项目并交付【接私活利器】
  2. 支持MySQL、Oracle、SQL Server、PostgreSQL等主流数据库
  3. 后端地址:https://gitee.com/renrenio/renren-fast
  4. 前端地址:https://gitee.com/renrenio/renren-fast-vue
  5. 代码生成器:https://gitee.com/renrenio/renren-generator

体会:跑过前后端代码、比较好、适合真实项目使用。其中,token用户身份请求头是保存到本地数据库中,就算是重启也不用重新登录,也适合集群部署;token过期不用刷新(session是每次访问自动刷新的),其实就是把过期时间设得长久一点(默认是12个小时)

体验项目时,发现了一个小bug:定时任务管理模块中,暂停、恢复等操作引起后台Long数组转List数组异常

改为如下:

 

  • Guns

基于Spring Boot2,致力于做更简洁的后台管理系统。包含系统管理,代码生成,多数据库适配,SSO单点登录,工作流,短信,邮件发送,OAuth2登录,任务调度,持续集成,docker部署等功能。可快速使用到实际项目开发中,后端开发人员可直接全部通杀前后端;因框架中的前端算比较容易上手【本人最近使用过,算有丢丢体会】。

DEMO地址:码云

其中,通用操作日志、通用权限统一配置等设计方式,值得我们学习、借鉴。

 

  • RuoYi

介绍一款杠把子级别的Java开源后台管理系统,RuoYi 基于SpringBoot开发,共两种版本,分普通交互前端bootstrap版本vue前后端分离版本

其中的认证过程采用JWT方式(不采用自身过期时间来判断是否有效,采用后面讲解中的改造方式):采用唯一uuid或其他随机唯一的方式生成token,将uuid、user(包含登录过期时间)分别对应redis缓存key和value、还有key过期时间设置。用户每次访问页面的时候,拿到token解析出uuid,然后根据key=uuid从缓存中获取用户信息来判断登录失效与否;若还没有失效,当前系统时间和用户信息中的过期时间expireTime对比,在小于一定的范围(比如20分钟)的时候,更新redis登录缓存(即重设过期时间和变更用户过期时间expireTime字段)。(此处值得借鉴

注意:用户实体中的expireTime主要是用来在恰当的时机进行token过期时间自动刷新的,防止用户不间断浏览系统,却出现强制退出的效果。这也很好解决了JWT认证过程中token如何失效问题。具体请看源码。

日志管理模块中,针对登录日志、操作日志记录的入库操作等与实际关键业务不太相关(不需要同步执行、对主业务影响不大的),采用了异步线程进行入库,提高了访问的响应速度。(此处值得借鉴

bootstrap版本开源地址:https://gitee.com/y_project/RuoYi/

vue前后端分离版本开原地址:https://gitee.com/y_project/RuoYi-Vue

官网地址:RuoYi

这个开源后台管理有两个版本,即前端可基于bootstrap或者vue,所具有的主要功能跟Guns开源项目差不多。

 

  • xxl-job 分布式任务调度平台

开发迅速、学习简单、轻量级、易扩展;

新版的没有用到quartz框架及其一堆的配置数据表,确实很轻量,这个开源软件使用起来不错哦。

github地址:XXL-JOB

官网地址:XXL-JOB,这个开源软件到底有多少人用、火不火,可以去这个官网看一下。

 

  • 基于vue的后台管理框架vue-element-admin

前后端分离开源框架,免去自己通过脚手架vue-cli构建项目打包带来的各种坑,同时可快速基于原有前端框架体系进行快速开发。

官网地址:vue-element-admin

vue基于组件式的单页面框架,目前在前后端分离开发中还是很常用的(纯属个人意见)

 

  • spring-boot-api-project-seed

pring Boot API Project Seed 是一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目。同时作者建议:为了项目代码小巧玲珑并且极简,尽量使用自带类库和Google guava工具类。

功能亮点:整合alibaba Druid进行数据库监控;包含代码自动生成,代码生成使用到Freemarker,Freemarker根据模板生产具体代码类;还有一个简单签名认证(前端、后端 根据请求参数规则+秘钥 动态生成sign比较,目测可以防止请求内容被篡改,但是需要保证秘钥及生成规则不被泄露)等。

项目详情请移步到github,地址:spring-boot-api-project-seed

 

  • SpringBoot+Netty分布式即时通讯系统

CIM(CROSS-IM)项目是面向开发者的 即时通信 系统,项目基于目前比较流行的 SpringBoot 进行构建(项目依赖的Spring Boot 版本为 1.5.x ,可以自行升级到最新稳定版本),基于 Netty 进行网络通信。利用Redis来存放客户端的账户/状态(是否在线)/路由等信息,同时使用Zookeeper来完成服务间的发现。

通过 CIM(CROSS-IM) 你可以设计一款属于自己可水平扩展的 IM 。

项目地址: https://github.com/crossoverJie/cim

 

  • Cloud-Platform 基于Spring Cloud微服务化开发平台

Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。 核心技术采用Spring Boot 2.1.2以及Spring Cloud (Greenwich.RELEASE) 相关核心组件,采用Nacos注册和配置中心,集成流量卫兵Sentinel,前端采用d2-admin中台框架。

本博主亦在了解学习中,不便多言,具体细节请看项目。其中有多个版本,有些公司是用以前的稳定版(即eureka作为注册中心)来实际开发项目的,具体看个人想用哪个版本,一般新版本是以前版本的升级完善。

项目地址:https://github.com/wxiaoqi/Spring-Cloud-Platform

 

  • EL-ADMIN 后台管理系统(待详细阅读代码、设计)

项目地址:https://github.com/elunez/eladmin

待续.................

2021/3/8

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值