# single-sboh **Repository Path**: allen356/single-sboh ## Basic Information - **Project Name**: single-sboh - **Description**: 单点应用示例,技术架构:springboot +oracle + hibernate - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-02-11 - **Last Updated**: 2025-03-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 通用项目模板(脚手架)简介 (single-sboh) single-sboh是一套【单点应用】的【纯后端】通用项目模板。 包路径规划:除了基础包(base)之外,其它包以业务划分,所有的Hibernate实体类和DAO类都位于base包下面的hibernate子包之中。 最后更新于:2022.12.08 # 技术栈 * JDK Version:1.8 * MVC框架:Springboot 2.7.2 * 数据库:Oracle 11G * ORM/持久层:Hibernate 5.6.10.Final * 数据缓存:Redis + redisson 提供Redis操作工具类:RedisUtils.java * 基于Redis的功能:用户权限体系,全局验证码,spring缓存@Cacheable,分布式锁@Lock,表单防重复提交@RepeatSubmit * 权限框架:satoken 1.33.0 整合了Redis , jwt * 日志组件:logback 1.2.11 + 自定义日志注解 @Log,还提供日志记录工具类:MyLOG.java * 容器化部署:Docker + docker-compose * JDBC连接池:Springboot 自带的默认连接池 HikariCP * 动态数据源:baomidou 3.5.1 * Api文档:Swagger 3.0 + Knife4j 3.0.3 * SQL性能监控:p6spy 3.9.1 (日志输出到数据库表) * 分页查询:自定义分页类Page、PageDAO * 工具类:hutool 5.8.3 # 功能特性 * 日志功能:包括操作日志、SQL性能日志、登录日志。(日志输出到日志文件和数据库表时,采用异步方式) * 参数校验:基于JSR303的接口参数校验(不建议使用) * Api文档:基于Swagger3 + Knife4j 3.0的增强Api文档 (三种环境不同的配置类) * 分环境配置:提供三种环境下的配置文件,一键切换 * 自定义配置:支持自定义配置文件(resource\config\config-环境.yml) * 动态数据源:基于Spring的动态数据源机制 * 统一返回:采用HTTP响应码,返回实体类:RE.java (为了与swagger完美整合,重写了org.springframework.http下的四个类,主要是增加实例化方法) * 权限体系:基于satoken的权限管理 (用户登录,登出,登录信息超时,是否允许多人登录一个帐号,踢人下线,密码多次输错控制,二次认证,用户行为监听处理) * 全局异常拦截:业务异常、分布式锁异常、权限异常、参数校验异常、其它异常 * 容器化部署:支持生成Docker镜像,进行容器化部署,提供创建镜像和容器的示例脚本 * 全局验证码:支持以配置形式开启或关闭各个接口的验证码检查 * 在线用户列表:基于satoken的认证机制,提供查看在线用户列表的接口 # 生成脚手架的步骤 * 1、在maven中,双击archetype:create-from-project运行archetype插件,运行的结果在控制台中显示:BUILD SUCCESS 说明构建成功,同时可以看到文件存放的路径。 * 2、在文件的存放路径下(archetype目录中),打开cmd窗口,执行命令:mvn clean install,直到看到 BUILD SUCCESS,说明执行成功。 * 3、继续执行cmd命令:mvn archetype:crawl,该命令会检索本地仓库所有工程模板,当看到 BUILD SUCCESS时,说明成功了。 * 4、此时可以在本地Maven仓库的repository目录中看到一个文件:archetype-catalog.xml, 打开该文件,可以看到对应的archetypes结果,此时本地Maven仓库中已经生成了脚手架相关包。 # 脚手架属性 * groupId:com.detech.sboh * artifactId:sboh-archetype * version:2.0.1 # 如何使用脚手架? * 1、在idea中点击菜单File -> new -> Project...,选择maven,勾选Create from archetype,点击 Add Archetype按钮,填写groupId和artifactId、version信息(就是archetype-catalog.xml文件中的信息),点击OK,便添加完成 * 2、点击next,填写项目名称,然后确定,便生成了整个项目结构。 * 3、如果其他人没有使用本源码生成脚手架,也想使用脚手架来创建应用,那么可以将生成的脚手架maven仓库目录结构,发送给使用者,使用者将其手动添加到自己本地的maven仓库中即可。 # 注意事项 * 使用本脚手架创建应用后,由于脚手架本身的替换机制问题,还需要修改以下内容,以完成最后的调整: * 1、修改idea项目的配置文件:\.idea\.name,将文件内容修改为你的应用名。 * 2、docker目录下的相关配置文件,请根据实际需要,自行修改。 * 3、Dockerfile文件内容,请根据实际需要,自行修改。 * 4、本文件【README.md】可以删除,或修改为本应用相关的说明内容。