javaEE体系架构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaEE体系架构相关的知识,希望对你有一定的参考价值。
1、两层架构
简单将系统分为前台(视图)、后台(模型)。
前台:即jsp、el和jstl等页面的表示
后台:业务逻辑层与表示层或数据层混在一起。
没有任何中间件,开发、部署、扩展、维护困难。
如:jsp+servlet(+Dao)、jsp+javaBean(+Dao)
2、MVC设计模式
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。
- 模型:模型层负责封装应用的状态,并实现数据处理和业务逻辑。
- 视图:视图层负责数据的显示与提交。
- 控制器:负责控制视图层发送的请求以及程序流程的控制。
MVC一个笼统的设计模式,要求把应用的模型按一定的层次规则抽取出来,将业务逻辑聚集到一个部件里面(模型),控制器控制程序流程,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
MVC提供了让模型和视图相分离的思路——提取出专门的控制器。我们把页面跳转关系管理、流程控制、表单数据的封装及验证、国际化等任务交给控制器处理。如java开发中,jsp专注视图、servlet专注控制、javaBean处理逻辑。构成jsp+servlet+javaBean的MVC开发模式。
Controller被设计为处理用户交互的逻辑。一个通常的误解是认为Controller负责处理View和Model的交互,而实际上View和Model之间是可以直接通信的。为了实现视图与业务逻辑的解耦,才加入controller这个中间层。
3、Dao设计模式
DAO即Data Access Object,数据访问接口。数据访问:故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间,在model层将业务逻辑与数据访问分离。
四个组件:
DBUtils工具类---负责数据库的连接与关闭
Dao接口---定义增删该查的抽象方法,一个领域模型对应一个Dao接口。
Dao接口的实现类
VO值对象---一个VO对应一个数据表,便于把对数据表的操作转化成对java类的操作。
4、三层架构的软件设计体系
三层架构(3-tier architecture) 将整个业务应用划分为:表现层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。
区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
表现层(UI):表示层由处理用户交互的客户端组件及其容器所组成(html、css、js、jsp、el和jstl等);
业务逻辑层(BLL):业务逻辑层由解决业务问题的组件组成;
数据访问层(DAL):数据层由一个或多个数据库组成,并可包含存储过程。
三层架构思想,是一种笼统的架构思想,没有限制具体的设计,三层是纵向的、下层向上层提供服务。
一般具体实现:用MVC设计模式解耦表现层和业务逻辑层;Dao设计模式作数据访问层。
5、javaEE中的开发模式
开发模式:即软件设计套路;选择框架结构填充代码的软件开发方式(这里的框架是按照三层架构思想、MVC和Dao等设计模式具体实现软件的成熟框架结构)
1、适合规模较小的软件系统(两层架构)
jsp+servlet
将数据访问抽象出来:jsp+servlet+Dao设计模式
2、适合较大规模的软件系统(三层架构)
jsp+servlet+javaBean
将数据访问抽象出来:jsp+servlet+javaBean+Dao设计模式
3、流行框架:ssh(structs+spring+hibranate)
- jsp、el和jstl对应表示层
- struts对应控制层
- spring+hibranate对应业务逻辑层
总结:分层的具体界限并不一定,根据软件规模甚至功能模块的复杂性有所不同。总之,理解三层架构的软件体系思想,结合MVC、Dao等模式,根据项目规模、复杂性等具体问题具体解决。
以上是关于javaEE体系架构的主要内容,如果未能解决你的问题,请参考以下文章
Java的三大体系架构:深入剖析Java的三大体系架构,包括Java SEJava ME和Java EE等