MarketAnalysis项目十二月份已经全部完工了,之后一直忙于期末考试和其他课设,一直没把总结放上来;为了笔记不遗失也方便以后查找还是放上来吧。

这次项目,我花了比较多的心血在这上面,完整地跟进了整个项目,从开题之后每个阶段都紧跟着团队的脚步,也推动着团队往前走。在这个过程中,我收获了很多项目经验,不止是从技术层面,对于现有的web的技术从底层到最新都有个大概的了解了,更从团队合作中的获取了团队经验,包括项目管理的git使用以及体会到了分层体系架构给我带来的好处,还有日常与队友如何对接,沟通交流的经验,可以说是真的受益匪浅。

我在本次项目中负责的后端的工作有搭建Spring框架、搭建SpringMVC框架、从Strut2+Spring+Hibernate到SpringMVC+Spring+Hibernate的整合、对项目进行层次体系结构设计分层、用户权限控制、用户账户安全访问控制以及发送手机验证码模块。

我会把每一部分的工作都一一总结,这里先介绍对项目进行分层体系结构设计。

该项目通过SSH框架搭建,项目结构如下图1.1所示。

【MarketAnalysis总结】1.0分层体系架构

图1.1 项目框架图

后端之所以这样分层,原因在于把项目解耦,把模型、视图、控制分开,独立工作,方便团队合作编码与整合。其各层详细的作用描述如下:

1)   Controller(控制层)

控制层是整个项目的指挥中枢,主要控制页面间的跳转,接收前端的请求并分发请求,以及前后台数据的传输。前端所有的请求,都要汇集先到该层,再由控制层统一把需求分发到对应的业务逻辑层获取相应的服务,处理完毕后再经过控制层回复给前端。

前端请求到后端处理并返回的实现流程如下:

a)   前端通过url向后端发来请求以及数据,后端一直处在待接收请求的状态;

b)   通过匹配url分发到后端controller的一个函数,对该请求进行处理;

c)   所匹配的函数调用Service层对应的服务并处理加工数据后,Service层向controller返回一个结果,再由controller应答前端。

  • Interceptor(拦截层)

拦截层是在Controller层之前的一层,它可以在某些特定的请求(可以自己设计)到达控制层之前拦截下来,对其进行权限校验、身份校验、合法性检查、避免过量请求涌入等操作。

在本次项目中,拦截层主要做了对下载权限、查询权限的校验、是否在登录状态访问的控制、以及检查前端请求是否合法的工作。每一个功能分别如下图1.2对应的DownloadInterceptor、QueryInterceptor、LoginInterceptor和AfterLoginInterceptor、IndexInterceptor五个类。

【MarketAnalysis总结】1.0分层体系架构

图1.2 拦截层

2)   Service(业务逻辑层)

业务逻辑层也称服务层,是控制层的下一层,负责接收来自控制层分发的需求,为其提供相应的服务的,例如数据加工处理。

Service层负责的工作流程如下:

a)   控制层调用service层相应的服务,并传入要处理的原始数据;

b)   Service层接收到原始数据,开始对数据进行加工,调用DAO层提供的接口,对数据库进行操作;

c)   处理完毕后返回加工后的数据给controller。

3)   DAO(数据库访问层)

数据库访问层顾名思义是负责对数据库访问的操作的,是Service层的下一层。它不包含业务逻辑,主要封装了对数据库的连接、关闭、增删查改等操作,以便给它的上一层Service提供相应的数据库服务,是较底层的一层。

4)   Cache(缓存层)

缓存层主要负责对已查询过的数据进行缓存,并定时刷新。该层的作用是解决对大量数据的查询有很大的时间开销问题。

5)   Entity(实体层)

实体层是最底层的一层,直接对应数据库的表。该层封装着每张表的Javabean(对应着一个个类),以及对应的映射配置文件。它负责把数据库里的表映射到Javabean,以便DAO对数据库操作。

至此,我详细地介绍了每一层的作用,以及为什么这样分层。由于前端的各层作用不是我负责的范围,故在此不做过多赘述。






相关文章:

  • 2021-09-08
  • 2022-02-03
  • 2021-07-12
猜你喜欢
  • 2021-12-06
  • 2021-06-27
  • 2021-07-31
  • 2021-12-06
  • 2021-09-25
  • 2021-12-24
  • 2021-08-04
相关资源
相似解决方案