有源码做网站,wordpress主题和模板,精准推广,青岛高端网站设计本篇博客我们主要讲解 1.应用的分层#xff1a;三层架构 2.Spring MVC和三层架构的区别和联系 3.软件设计原则#xff1a;高内聚低耦合 4.应用分层的好处 5.通过应用分层后的代码示例 一、三层架构简介
阿里开发手册中,关于工程结构部分,定义了常见工程的应用分层结构: 上图… 本篇博客我们主要讲解 1.应用的分层三层架构 2.Spring MVC和三层架构的区别和联系 3.软件设计原则高内聚低耦合 4.应用分层的好处 5.通过应用分层后的代码示例 一、三层架构简介
阿里开发手册中,关于工程结构部分,定义了常见工程的应用分层结构: 上图的表示层也叫做表现层。 解释概念 1.表现层Controller展示数据结果和接收用户指令的是最靠近用户的一层 2.业务逻辑层Service处理业务逻辑里面有复杂业务的具体实现。 3.数据层Mapper/Dao存储和管理与应用程序的相关的数据。 二、Spring MVC和三层架构的区别和联系
SpringMVC 三层架构 联系 二者其实是从不同角度对软件工程进行了抽象。
MVC模式强调数据和视图分离,将数据展示和数据处理分开,通过控制器对两者进行组合.
三层架构强调不同维度数据处理的高内聚和低耦合,将交互界面,业务处理和数据库操作的逻辑分开.角度不同也就谈不上互相替代了在日常的开发中可以经常看到两种共存的情况比如我们设计模型层的时候往往也会拆分出业务逻辑层Service层和数据访问层Dao层。 我的理解 区别 MVC架构模式组成模型Model、视图View、控制器Controller 三层架构将业务应用分为表现层、业务逻辑层、数据访问层。 Spring MVC是对MVC思想在Spring框架中的一种实现。 三层架构是对代码处理的不同的逻辑功能的封层。 我觉得他们是两个独立的思想。 MVC是站在前后端共同开发时对开发的理解。V对应前端MC对应后端。 而如今我们已经前后端分离进行开发因此实际上MVC的思想其实是有点过时的。 三层结构就是对我们纯后端代码的分层。 联系 但是他们有共同的目的就是使我们开发程序更加的清晰有条理。 从概念上讲二者都是软件工程领域中的架构模式。 并且三层架构中的表现层对应MVC的视图和控制器 而MVC中的模型对应三层架构的业务逻辑层数据层实体类。 二者的目的是相同的,都是解耦分层代码复用 三、软件设计原则高内聚低耦合 高内聚低耦合矛盾吗?
不矛盾
高内聚指的是一个模块中各个元素之间的联系的紧密程度。
低耦合指的是各个模块之间的紧密程度。 比如一个企业中各个部门关联关系要尽可能小一个部门发生问题要尽可能降低对其他部门的影响就是低耦合。 但是部门员工关系要尽量紧密遇到问题一起解决。这叫高内聚。 比如人体的各个部位中手、脚、胳膊、腿之间的影响比较小使得当手受伤对其他部位影响很小这就是低耦合。 而人体中肌肉、骨骼、肌腱等需要相互配合才能使得人们可以灵活运动。这就需要高内聚紧密相连。 四、应用分层的好处
1.降低层与层之间的依赖结构更加的明确利于各层逻辑的复用。
2.开发人员可以只关注整个结构中的其中某一层极大的降低了维护成本和维护时间
3.可以很容易的用新的实现来替换原有层次的实现
4.利于标准化。
五、通过应用分层后的代码示例
比如我们写的图书管理系统。如今我们主框架创建三个软件包。
1.Controller 2.Service 3. Mapper 六、SpringMVC大总结
1、十一个注解
对于SpringMVC。实际就学习各种Web开发需要用到的注解
a、RequestMapping路由映射
b、RequestParam后端参数重命名
c、RequestBody接收JSON类型的参数。
d、PathVariable接收路径参数
e、RequestPart上传文件
f、ResponseBody返回数据
g、CookieValue从Cookie中获取值。
h、SessionAttribute从Session中获取值
I、RequestHeader从Header中获取值。
j、Controller、返回视图。定义一个控制器Spring框架启动时加载把这个对象交给Spring管理。
k、RestController、返回数据ResponseBodyController
2.Cookie和Session
Cookie是客户端机制。
Session是服务器机制。
两者通过SessionID来关联。SpringMVC 内置HttpServletRequestHttpServletResponse
两个对象需要时使用。直接在方法中添加对应的参数即可。
Cookie和Session可以从HttpServletRequest中来获取也可以直接使用。HttpServletResponse
设置Http响应状态码。