该项目为参与校内工作室的考核项目
一个简单的Servlet学习项目
- 采用MVC架构,业务逻辑与接口与数据库操作分离
- 使用JDBC连接池,自动扩缩容
- 使用手写的orm框架,实现了简单的增删改查,简化了数据库操作
- 登录验证使用jwt
- 使用过滤器实现异常统一处理,登录验证
- 全程保证线程安全
- 使用统一的异常处理,返回json格式的错误信息
- 使用自建的k8s集群部署,自动扩缩容,保证高可用
- 使用TiDB作为数据库,保证数据的高可用
- 使用redis作为分布式锁,保证数据一致性
- 使用了RESTful风格的API,接口简洁明了
- 用了Apifox,清晰的传达了接口的信息,便于前后端协同开发
疑问
- 有必要同时存在Model和schema吗?(对于数据库的映射和对于接口数据的映射,还是说有其他方法把请求中的json转换成java内部的数据结构)
- Service 层和 Dao 层方法重叠,Service 层通常只是转发给Servlet层,能不能省略?
- Servlet怎么做单元测试?
- 怎么真正实现IOC容器和DI?(注入时根据信息通过有参构造函数新建对象)
- AOP是什么,怎么实现?
- 一般的数据库的QPS是多少,一般服务的QPS有多少
待改进的地方
- 手写的orm不支持join,查询关联数据时需要多次查询
- Service层和Dao层区分不够明显