# zuoban-boot **Repository Path**: xhyym/zuoban-boot ## Basic Information - **Project Name**: zuoban-boot - **Description**: zuoban-boot 一个快速启动平台 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 0 - **Created**: 2022-09-29 - **Last Updated**: 2023-10-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: MyBatis, SpringBoot, Shiro ## README # 项目说明 zuoban-boot 寓意:作伴。正如我自己的网名一样,希望这个框架也能与你作伴。也愿所有的代码大佬们有另一半与你作伴。 - 技术介绍:该项目采用Springboot、MyBatis、Shiro等技术,基于目前企业中的常用技术作为一个整合而形成的一个快速启动平台。内部包含的设计模式有:责任链,策略,观察者。 应广大小伙伴要求,这些设计模式我会在下方的文档中给出具体的使用场景以及我自己对这部分业务的思考,希望对大家有帮助。 - 代码结构:系统采用包结构管理方式,而不是maven的父子结构。在我的想法中,该启动平台可以独立成为一个jar包存在,而不需要和业务线耦合。而且该平台目前已经实现的功能都是比较基础的功能,并不会在实际的业务中造成很大的侵入。 - 演示环境:暂无(不会前端,在这里寻求一位有志向的小伙伴一起开源) - 演示账号:项目启动后,访问localhost:8080/doc.html,可以自行注册后使用功能。 - 其他说明:项目SQL以及SQL的pdf介绍文档均在项目的【文档】目录中,目前仅支持MySQL。后期大家可以根据实际需求提issue或者自己根据这个框架开发出符合业务的功能。 # 项目文档 ## 功能说明: - 登录 - 注册 - 验证码 - 文件管理 - 系统日志 - 短信平台 ## 功能介绍 在上面描述中,我们使用了多种设计模式;分别给大家介绍一下设计模式使用地点以及业务场景。 - 登录:在目前的企业应用中,登录功能作为最基础的功能,也包含着特别复杂的业务线。所以,此平台,运用策略模式,实现了7种登录方式,分别是:账户、邮箱、手机号、微信、QQ、第三方(淘宝,支付宝或者自己的三方登录工具等等)。目前系统中只处理了账户登录逻辑,其余登录方式请根据自己实际业务实现。 - 使用说明:在项目中,有一个枚举类 **LoginEnum** ,前端传值需要传对应的code和key,任意一个错误都会导致登录错误。 - 文件管理及短信平台:通过yml配置实现各种平台的整合,其中文件管理平台内部已经实现了所有逻辑,在使用时可以直接根据配置自由选择。短信平台目前仅支持阿里云短信。如需其他平台,请根据实际配置编写内部业务代码。和策略模式一样,这里的短信以及文件管理基于策略模式实现。 - shiro认证:shiro认证采用责任链模式完成,共计四道责任链。分别是:redis,mysql,过期校验以及token伪造校验,并且采用@Order注解 实现顺序执行。核心代码:AuthRealm.doGetAuthenticationInfo()。 - 日志管理:日志管理采用观察者模式。为什么不用Aop?在项目中,aop只能记录方法级别的日志,并不能做到颗粒化的日志记录,所以在开发时放弃掉了Aop。实现原理:编写观察者,在日志埋点时,通过通知观察者的形式,采用异步入库,并不会对实际业务线造成阻塞。日志详细记录了IP+归属地。 其他功能待开发... # 支持 - 作者目前暂时不需要喝咖啡,大家也少喝咖啡。如果对你有用,点个star就是对我最大的支持。