# Ape-Frame
**Repository Path**: codebeeee/ape-frame
## Basic Information
- **Project Name**: Ape-Frame
- **Description**: 基于springboot封装的轻量级开发框架
- **Primary Language**: Unknown
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-04-03
- **Last Updated**: 2023-04-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Ape Frame
基于SpringBoot开发的轻量级框架
## 项目简介
ape-frame,ape是“猿”的意思,正好符合我们程序猿的称号!我希望未来这个框架是专属于我们程序猿的首选开发框架。
一直想做一款适用于中小企业的轻量级快速开发框架,涵盖平时业务开发的常用场景,做到开箱即用。用户可根据自身情况选择组件来进行使用。采取组件化开发模式。
比如用户需要redis,则选择redis组件,需要websocket,则引入websocket组件,用户自身不需要再开发什么,只需要按照组件规则进行使用即可。
同时,有些经典的工具以及经典的设计模式代码,提供了大量实例参考,用户的业务场景一旦用到,就可以直接使用。
项目整体采用maven结构开发,封装了大量的模块,彼此解耦。满足用户日常开发需要。
## 内置项目模块
### ape-common
* ape-common-job:分布式任务调度组件
* ape-common-log:日志组件,提供日志切面自动记录及异步日志提升性能
* ape-common-mybatisplus:采用Mybatisplus作为与数据库交互
* ape-common-redis:缓存组件,提供基于redis的操作封装,redis分布式锁,guava的cache工具类
* ape-common-starter:启动类组件,与启动类相关的功能,放到此组件处
* ape-common-swagger:swagger组件,提供整体项目访问api的入口及方法文档
* ape-common-test:测试组件,集成springboot-test,及代码单元测试,代码覆盖率,行覆盖率检测
* ape-common-tool:常用的工具类组件,满足业务日常开发的各种需要,保障安全性,低入侵性
* ape-common-web:web组件,提供统一异常处理,web模块转换,统一返回值
* ape-common-websocket:websocket组件,提供一套带鉴权的websocket,引入即用,简单方便
### ape-demo
demo里提供了大量的实例,教大家如何直接使用这个项目框架,大家在开发中,可以直接参考这个模块来建立自己的项目进行使用。
目前已经提供的示例功能
* redis缓存使用
* 链路追踪
* 基于redis的延时任务实现方式
* 基于guava的本地二级缓存封装
* 分布式锁封装
* 完整的一套crud流程
* mapstruct的使用方式
* 各种lambda常用表达式的用法
* 设计模式的实际案例,工厂、建造者、策略、模板等
* 项目启动预热,可预热缓存,单例对象,线程池等
* 分布式任务的job的编写
* websocket的使用
* 线上,预发,测试等开发环境隔离
* linux下打包部署
* freemarker导出复杂word表单
* 自定义banner
### ape-dependencies
该模块为一个父pom模块,提供项目整体的maven包的锁定及规范,统一升级,统一引入。
## 内置功能
* 做脚手架的意义
* linux下安装mysql
* 如何涉及一个项目模块,如何拆分
* lombok演示及集成
* 集成druid连接池及数据库连接监控
* 集成Mybatisplus的优化器及拦截器
* 统一数据库基础实体封装
* 集成swagger,并自定义信息
* easycode自动生成代码
* 自定义banner
* linux下安装redis
* redistemplate集成
* 封装redisutil
* 项目启动自预热缓存
* 手动封装一个分布式锁
* 注解缓存集成
* log4j集成
* 基于disruptor的异步日志
* freemarker实现复杂表单导出
* 设计模式实战demo,模板模式,工厂模式,策略模式,构造者模式,过滤器模式
* websocket集成+鉴权
* 线上、预发、开发、测试环境的隔离
* springboot-maven插件打包部署
* httpclient的优化
* 集成springboottest
* 服务预热
* 分布式任务调度xxljob集成
## 后续计划
* 百万级数据导入导出的
* 集成rabbitmq或者rocketmq
* 构建elk日志管理 filebeat+logstash+kibana
* shard-jdbc分表
* mysql的读写分离
* 多数据源切换
* 集成redission
* 集成spring oauth
* 分布式id基于美团leaf思想
## 问题反馈
欢迎大家提issue一起完善,以及提供各种宝贵建议,持续做成商业化开发框架。