一直想构建一个单体服务架子,用来自己开发使用。框架底层已经固定,就是基于如今的主流开发框架SpringBoot,再把一个后端服务所需要的基础功能比如token校验、接口文档、日志等集成进来。
这样在面对开发一个新业务单体服务时,可以快速开发使用,只需要改变服务名称、端口即可开箱使用。然后只需要设计业务的相关数据库表,填充相关的业务代码即可部署。
这便是xch-sboot的诞生逻辑。
xch-sboot开源地址
如果对你有用,star是对我大的肯定。
- 注册、登录、token校验以及续时、登出
- 文件上传下载
- 集成redis
- 集成JPA
- 日志logback
- Swagger接口文档
- 异常统一处理
- 返回结果封装
- 集成Gson
sboot支持用户名和邮箱登录,如果想扩展手机号,只需要自己在signin接口设计开发即可。
后续版本会把手机号+验证码登录实现。
token存储在Redis中,登录校验成功后会把生产的token作为Redis缓存的key,value里面存储用户相关信息。
token的校验和延期的代码逻辑都在Logininterceptor这个类里面。
2.2 集成JPA为什么选择JPA?
我认为JPA的功能已经足以适用。
我使用JPA尽量会单表查询,如果需要关联查询,我会把关联用java代码实现。
如果非要使用关联语句,JPA也支持SQL语句查询。
logback.xml里面的配置尽量简单,我特意加了注释,以便初学者使用。
在使用时,LOG_HOME属性根据自己的需要,可以修改日志文件存储的路径,以及APP_NAME属性也需要使用者改为自己的项目名。
后续版本会添加详细的日志打印级别。
2.4 异常/返回结果业务异常都可以使用BusinessException抛出,会把抛出的信息作为响应给到前端。
返回给前端的结果封装了Result和PageResult,以供使用。
三、如何使用?sboot的架构足够简单,所以像平时一样,把源码clone下来,然后导入到开发工具中。
下面列出需要修改的配置内容:
- application.yml中的spring.port端口和spring.application.name项目名称改成自己的。
- application.yml中的login.* 配置,RSA秘钥对要使用自己新生成的即可。file.path是文件上传的存储路径。
- application-lc/pe.yml中是MySql和Redis的配置,改成自己的即可。
- logback.xml中 property:“LOG_HOME”、"APP_NAME"两个属性改为自己的即可。
上面便是使用中需要修改的地方,当然如果你的心够大,只需要修改项目名和MySql/Redis的配置即可开箱即用。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享文章:xch-sboot单体服务架子-创新互联
转载源于:http://scgulin.cn/article/dcojsp.html