项目架构设计
接触的项目不多,使用的技术不多,根据工作涉及项目,做出如下总结(新项目的架构,若是老项目一直在优化的路上):
- 断言
当程序抛出异常或者遇到返回错误提示的时候,直接将这个操作交给断言,然后统一管理断言返回的格式处理,用起来真香。 - 异常存库处理
将程序抛出的异常(带有程序哪一行报错)记录到数据库中或者日志中。记录的时候带着后端处理服务器ip及操作用户等信息,这样好定位问题,及后端人员debug。 - dao层,事务层管理
只要涉及到操作数据库的方法,可针对功能模块创建独立的dao层业务类,配置好事务注解
【注意:使用事务的时候,相同的类方法(带有事务注解),不能调用本类带有事务注解的方法,这样会导致事务不生效。要想事务生效,创建独立的类,然后注入这个类即可,或者简单粗暴,注入当前类,通过此方式来调用方法。】事务管理经常会遇到坑,所以这块一定要严谨。(若描述不正确请评论错误博主改正。) - 业务处理service
每个业务对应一个service,不要混杂其他业务,这样开发业务逻辑美观,看代码的人也能根据业务模块来定位代码 - 业务model创建
业务处理service观点在不能创建多个model场景去做,若可以的话,每个业务有自己的model模块。业务分离清晰。【dao层model,tools层model,vo层model(可以跟dao层合并)controller层model,及各个业务处理model,如果公司有自己的私服地址,tools层弄好后,上传私服,公司所有的项目共用一个tools,这样维护方便,且可统一更新】 - lombok使用
如果条件允许,就直接引lombok,这样可以少写getset及构造方法和定义日志全局变量,直接用注解即可,偷懒神器。 - 参数校验
控制层,肯定会有不少的参数不能为空的处理,可用hibernate validator参数校验或者spring-boot-starter-web,@valid 注解在web开发包中,然后统一切面管理,返回程序统一的返回格式 - 操作日志
切面管理所有控制层操作日志,记录重要信息。【一般项目会存用户操作记录,方便知道功能使用情况,及方便查生产问题的操作的情况】 - 代码开发
按照阿里开发手册规则开发即可。idea可以安装阿里代码检测插件,检测写的代码是否合规,目前博主用的插件。