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)的缩写。

  1. 模型:模型层负责封装应用的状态,并实现数据处理和业务逻辑。
  2. 视图:视图层负责数据的显示与提交。
  3. 控制器:负责控制视图层发送的请求以及程序流程的控制。

 

  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)

技术分享

 

  1.  jsp、el和jstl对应表示层
  2.  struts对应控制层
  3.  spring+hibranate对应业务逻辑层

    技术分享

 

 

总结:分层的具体界限并不一定,根据软件规模甚至功能模块的复杂性有所不同。总之,理解三层架构的软件体系思想,结合MVC、Dao等模式,根据项目规模、复杂性等具体问题具体解决。

以上是关于javaEE体系架构的主要内容,如果未能解决你的问题,请参考以下文章

Java的三大体系架构:深入剖析Java的三大体系架构,包括Java SEJava ME和Java EE等

进阶大数据架构师学习路线

进阶大数据架构师学习指导路线

Spring和EJB3的技术对比

面试官问我有没有java架构开发经验,java架构是啥?怎样才算是有架构开发经验?

如何理解SpringBoot