第二次项目的总结

OA(Office Automation) by java

暂时做了这些,以后有需求和实力,会去持续拓展此项目

涉及技术栈:

​ 脚手架:Springboot

​ ORM框架:Mybatis

​ 参数校验框架:Spring Validation

​ 登陆注册:MD5加密、手动加盐实现

​ 认证:JWT 、拦截器、ThreadLocal 工具类的使用,Redis

​ 授权:手写@RoleCheck注解(具体用拦截器 + ThreadLocal 实现)

​ 异常处理:交给GlobalExceptionHandler

​ 文件上传:阿里云OSS(Object Storage Service)

​ 工作流框架:flowable

​ 数据库:MySQL、Redis

​ 集成AI: Spring AI框架

​ 聊天室:Websocket实现

​ 部署上线:docker

实现的一些功能:

​ 基础功能全部实现,加分项中除了分布式微服务相关的都尽量完成了
这些接口都在相应的controller中实现

在这里插入图片描述
在这里插入图片描述

相关的技术选型,思考了几天:

1.

认证和授权是自己手动实现的,没有用到安全框架,且框架可能会局限某些语言,但自己实现的底层逻辑却是其他语言也通用的

{JWT、拦截器、ThreadLocal ,Redis } 实现认证

{手写@RoleCheck注解(具体用拦截器 + ThreadLocal 实现)} 实现授权

2.

另外选用flowable工作流框架,对我还是很新的东西

工作流框架可以说是技术框架和业务框架的结合

工作流框架并不属于系统分层开发中的某一层,它本身连接了几十张表,它是一个完整的项目,解决了审批/业务编排的痛点

单纯建表手动处理工作流的劣势(工作流框架的优点):

流程比较复杂的时候,此时再用一个 status 字段去描述,就很难说的请到底是怎么回事了。每一步审批,都有可能批准也有可能拒绝,拒绝并不意味着流程结束,员工修改报销资料之后,还可以继续提交。此时如果还用 status 去描述,那么 status 将有 N 多个值去表示不同的情况,这个维护起来非常不便

申请相关的功能,我先按照自己逻辑手写完成了,后面结合flowable做一个报销流程

在这里插入图片描述

3.

阿里云OSS实现头像或其他流媒体文件的上传保存,应该以后会有用到的时候,到时候来取,在OSS工具类里面配置好即插即用
在这里插入图片描述

4.

Spring AI 也是才出的东西,额就是一个项目里调接口与ai聊天的功能,增强OA系统工作效率
我添加的是moonshot的免费api-key,以及代理域名base-url
或者去淘宝买key也是可以的

在这里插入图片描述

在yaml文件里面现用现配

5.

OA项目前刚学了计网,又了解一种网络协议Websocket,做个聊天室,相关后端代码放在了ws包里

6.

用validation框架实现了username和password的长度校验,还有email,url的格式检查

心得:

1.更体会到了MVC架构的解耦合和专注业务开发的设计思想,改掉之前项目的坏毛病,尽可能的把所有业务处理放在ServiceImpl中实现

2.Threadlocal真的非常好用,应用场景很多

项目地址:https://github.com/yourkin666/OA-yourkin666

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值