【整理】JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系
2014-02-16 12:28
281 查看
#【整理】JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系 ![关系图解](http://images.cnitblog.com/blog/84053/201402/171320568752410.gif) [visio文件下载](http://files.cnblogs.com/p2227/JavaEE_Frameworks.7z) ##概述 一个JavaEE的项目,页面用JSP,后台用了Struts2+Spring+MyBatis,数据库用的是Oracle,这么多技术名词,他们之间的关系如何,整体是怎么运作的,用什么东西进行关联?这是开发过程中任何一个成员都必须要了解的。即使你只关注某一个方面,例如前端。 ##Web端 `Struts`其实是JavaEE常用的MVC框架,统筹Servlet(C)、视图层(V)和后台Action及Action中的Model之间的关系。用户通过**http请求**去访问Servlet,Struts就会给你指定好类,并把request中的数据按照一定的规则放在Model中。当Action中的Model数据发生变化,通过response返回的JSP页面上也能通过el表达式或者其他库去访问到这些变化。我们就不用把心思花在通讯协议及一些数据格式(JSON和Java实体类)之间的处理上。 ##三层架构 在Web1.0时代,我们的业务逻辑都是交给后台去处理的,也就是Action层、Manager、Dao层所组成的JavaEE后台。我们推荐action层处理去视图之间的关系,这样当你用客户端和浏览器访问同一个应用时,只需要在action层上下工夫即可。manager层是真正的java逻辑,用各种java类、库去处理数据。dao层关注数据库层面的逻辑,这样当你访问Oracle或者MSSQL数据库时,只需要关注dao层即可。`Spring`统筹这三者之间的关系,通过IoC等概念去解决这三层之间的耦合关系。 ##数据库 在Dao层,我们关注后台内存中的变量与数据库持久层之间的通讯,我们一般用**jdbc**去进行通讯的,这是方式。内容则是由`MyBatis`去处理,通过mybatis去写SQL接收变量,接收返回的数据或者数据集。 ## Web 2.0时代的MVC 进入Web2.0时代,我们在Struts统筹的视图层中,也包含了较多的业务逻辑,特别是**不涉及到密码、权限等敏感数据,以提高用户体验为宗旨**的逻辑。所以在这一层上也要有以MVC的概念去统筹各代码的关系,使之条理化的框架如`angular`。HTML/CSS是视图,业务逻辑的javascript是控制器,记录数据的javascript(或者叫JSON)是模型。这一层与后台之间的以包装了http请教的`ajax`技术去实现。 ##最后的话 另外一个方面,数据库的存储过程等东西表明,这里面也有较复杂的逻辑。一个软件项目各个层面的领域发展,都达到一定高度,有一定复杂性。JavaEE的框架也是其中一种组织代码的框架,但从中抽象化出来的原理,理解了,去看其他类似框架时,也就能举一反三。
相关文章推荐
- Java Struts2 框架入门详解(一)MVC架构详解以及Struts基本概述
- Spring、Struts、Hibernate框架之间的关系是什么以及怎么处理
- 【自然框架】内部类库、控件的引用关系(最新整理,基本稳定)
- hibernate,spring,struts三个框架之间的关系
- .NET Framework 各个版本之间的关系以及下载地址整理汇总
- Struts2.1* 过滤规则 与 Servlet 之间的微妙关系
- Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
- SSH框架与MVC架构之间的关系
- struts2 框架的基本使用
- iOS-工程和工作空间、静态库和框架之间的关系
- 数据结构_图_定义/分类/顶点与边之间的关系/连通图/存储结构/基本操作
- 今日思考:MVC系列框架之Struts存在的意义是什么?
- 架构、框架、设计模式之间的关系简述
- Struts2.1* 过滤规则 与 Servlet 之间的微妙关系
- linux图形界面基本知识(X、X11、Xfree86、Xorg、GNOME、KDE之间的关系)
- Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
- 架构、框架、设计模式之间的关系简述
- 对话框的弹出和框架之间的关系
- java中集合框架的基本概念整理
- Cocoa框架类之间继承关系