本文主要是介绍【MarketAnalysis总结】1.0分层体系架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MarketAnalysis项目十二月份已经全部完工了,之后一直忙于期末考试和其他课设,一直没把总结放上来;为了笔记不遗失也方便以后查找还是放上来吧。
这次项目,我花了比较多的心血在这上面,完整地跟进了整个项目,从开题之后每个阶段都紧跟着团队的脚步,也推动着团队往前走。在这个过程中,我收获了很多项目经验,不止是从技术层面,对于现有的web的技术从底层到最新都有个大概的了解了,更从团队合作中的获取了团队经验,包括项目管理的git使用以及体会到了分层体系架构给我带来的好处,还有日常与队友如何对接,沟通交流的经验,可以说是真的受益匪浅。
我在本次项目中负责的后端的工作有搭建Spring框架、搭建SpringMVC框架、从Strut2+Spring+Hibernate到SpringMVC+Spring+Hibernate的整合、对项目进行层次体系结构设计分层、用户权限控制、用户账户安全访问控制以及发送手机验证码模块。
我会把每一部分的工作都一一总结,这里先介绍对项目进行分层体系结构设计。
该项目通过SSH框架搭建,项目结构如下图1.1所示。
图1.1 项目框架图
后端之所以这样分层,原因在于把项目解耦,把模型、视图、控制分开,独立工作,方便团队合作编码与整合。其各层详细的作用描述如下:
1) Controller(控制层)
控制层是整个项目的指挥中枢,主要控制页面间的跳转,接收前端的请求并分发请求,以及前后台数据的传输。前端所有的请求,都要汇集先到该层,再由控制层统一把需求分发到对应的业务逻辑层获取相应的服务,处理完毕后再经过控制层回复给前端。
前端请求到后端处理并返回的实现流程如下:
a) 前端通过url向后端发来请求以及数据,后端一直处在待接收请求的状态;
b) 通过匹配url分发到后端controller的一个函数,对该请求进行处理;
c) 所匹配的函数调用Service层对应的服务并处理加工数据后,Service层向controller返回一个结果,再由controller应答前端。
- Interceptor(拦截层)
拦截层是在Controller层之前的一层,它可以在某些特定的请求(可以自己设计)到达控制层之前拦截下来,对其进行权限校验、身份校验、合法性检查、避免过量请求涌入等操作。
在本次项目中,拦截层主要做了对下载权限、查询权限的校验、是否在登录状态访问的控制、以及检查前端请求是否合法的工作。每一个功能分别如下图1.2对应的DownloadInterceptor、QueryInterceptor、LoginInterceptor和AfterLoginInterceptor、IndexInterceptor五个类。
图1.2 拦截层
2) Service(业务逻辑层)
业务逻辑层也称服务层,是控制层的下一层,负责接收来自控制层分发的需求,为其提供相应的服务的,例如数据加工处理。
Service层负责的工作流程如下:
a) 控制层调用service层相应的服务,并传入要处理的原始数据;
b) Service层接收到原始数据,开始对数据进行加工,调用DAO层提供的接口,对数据库进行操作;
c) 处理完毕后返回加工后的数据给controller。
3) DAO(数据库访问层)
数据库访问层顾名思义是负责对数据库访问的操作的,是Service层的下一层。它不包含业务逻辑,主要封装了对数据库的连接、关闭、增删查改等操作,以便给它的上一层Service提供相应的数据库服务,是较底层的一层。
4) Cache(缓存层)
缓存层主要负责对已查询过的数据进行缓存,并定时刷新。该层的作用是解决对大量数据的查询有很大的时间开销问题。
5) Entity(实体层)
实体层是最底层的一层,直接对应数据库的表。该层封装着每张表的Javabean(对应着一个个类),以及对应的映射配置文件。它负责把数据库里的表映射到Javabean,以便DAO对数据库操作。
至此,我详细地介绍了每一层的作用,以及为什么这样分层。由于前端的各层作用不是我负责的范围,故在此不做过多赘述。
这篇关于【MarketAnalysis总结】1.0分层体系架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!