典型的 J2EE 三层结构,分为表现层、中间层(控制层、业务逻辑层)和数据服务层。将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。
      表现层是传统的JSP技术。
   中间层采用的是流行的Spring+Hibernate,为了将控制与业务逻辑分离,又细分为以下几种。
       Web层,就是控制层,框架采用Struts。
       Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件包装,完成系统所要求的业务逻辑。
    DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。
       PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,采用Hibernate作为ORM框架。

Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。

优秀的分层架构里,控制层依赖于业务逻辑层,但绝不与任何具体的业务逻辑组件耦合,只与接口耦合;同样,业务逻辑层依赖于DAO层,也不会与任何具体的DAO组件耦合,而是面向接口编程。采用这种方式的软件实现,即使软件的部分发生改变,其他部分也尽可能不要改变。

例如PCI接口、显卡或者网卡,只要其遵守PCI的规范,就可以插入主板,与主板通信。至于这块卡内部的实现,不是主板所关心的,这也正是面向接口编程的好处。假如需要提高电脑的性能,需要更新显卡,只要更换另一块PCI接口的显卡,而不是将整台电脑抛弃。如果一台电脑不是采用各种接口组合在一起,而是做成整块,那将意味着即使只需要更新网卡,也要放弃整台电脑。同样,对于软件中的一个个组件,当一个组件需要重构时,尽量不会影响到其他组件。实际上,这是最理想的情况,即使采用目前最优秀的架构,也会有或多或少的影响,这也是软件工程需要努力提高的地方。

引入接口就不可避免需要引入工厂来负责DAO组件的生成。Spring实现了两种基本模式:单态模式和工厂模式。而使用Spring可以完全避免使用工厂模式,因为Spring就是个功能非常强大的工厂。因此,完全可以让Spring充当DAO工厂。由Spring充当DAO工厂时,无须程序员自己实现工厂模式,只需要将DAO组件配置在Spring容器中,由ApplicationContext负责管理DAO组件的创建即可。

J2EE三层架构概述相关推荐

  1. CCNP1交换:三层架构概述、路由器交换机登录密码破解、VLAN、trunk(ISL、dot1Q)、DTP、VTP、交换机工作原理

    文章目录 CCNP1交换:三层架构概述.路由器交换机登录密码破解.VLAN.trunk(ISL.dot1Q).DTP.VTP.交换机工作原理 一.企业网三层架构概述: 1.冗余: 2.三层架构: 二. ...

  2. J2EE三层架构简介

    三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了"高内聚,低 ...

  3. WEB开发三层架构概述

    SSH的三层结构 DAO 对数据库的操作的接口和实现 SERVICE 业务逻辑的实现,也可以使用dao提供的数据库操作的接口实现 ACTION  实现调用业务逻辑方法来处理用户的请求 三层结构 3-t ...

  4. 三层架构与设计模式思想部署企业级数据库业务系统开发

    1. 三层架构介绍 1.1关于架构 架构这个词从它的出现后,就有许许多多的程序员.架构师们激烈地讨论着它的发展,但是架构一词的出现,却是随着三层架构的出现才出现的.当然,目前应用三层架构开发也正是业界 ...

  5. 黑马程序员-三层架构介绍

    ---------------------- Windows Phone 7手机开发. .Net培训.期待与您交流! ---------------------- 三层架构介绍 1关于架构 架构这个词 ...

  6. MyBatis-架构概述,什么是框架,三层架构,JDBC

    MyBatis 框架-第1章 框架概述 1. 软件开发常用结构 1.1 三层架构 三层架构包含的三层: 界面层(User Interface layer).业务逻辑层(Business Logic L ...

  7. 开启 J2EE(七)— Model1、Model2和三层架构的演变

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/akkzhjj/article/details/37667261 Model1和Model2是Java ...

  8. 第六章节 三层架构(一. 三层架构的概述)

    一. 三层架构的概述 1.在大中型ASP.NET站点的设计开发中,通常采用三层架构的设计,既表现层.业务逻辑层.数据访问层,各层特点简述如下: 层级 说明 表现层 (UI) 用于显示数据和接收用户输入 ...

  9. 三层架构和SpringMVC概述

    目录 一.关于三层架构和MVC 1.三层架构 (1)表现层 (2)业务层 (3)持久层 2.MVC 模型 3.经典三层架构和MVC的关系 二.SpringMVC 概述 1.SpringMVC的优势 2 ...

最新文章

  1. Ubuntu 14.04 改变文件或者文件夹的拥有者
  2. 使用***搭建javaweb环境
  3. 22行代码AC,三种解法——例题3-6_环状序列(UVa-1584)
  4. java泛型 算法_非常具体的Java泛型问题 – 如何返回传递给方法的相同类型?
  5. C++设计模式——单例模式
  6. 本文为 2021 年 5 月知识总结
  7. 【ROS学习笔记】(十一)launch启动文件的使用方法
  8. Servlet — 如何让服务器控制浏览器10秒后跳转到另一个页面
  9. 上广电D2527彩电兴暗故障检修
  10. 使用 CP2102通过串口下载程序到STM32F103中 (MCUISP)
  11. Globle.asax错误:异常详细信息: S…
  12. 大学毕业后拉开差距的真正原因
  13. android res编辑器,Android Apk编辑器(ApkModifier) V3.6.0
  14. Android音视频开发:AudioRecord录制音频
  15. 华为软件测试工程师无线产品线实习生第一次视频面试
  16. haster、setattr、getattr的区别
  17. stm32h750/stm32h743原理图和pcb源文件
  18. 推荐系统:ImportError: cannot import name ‘evaluate‘ from ‘surprise
  19. (二)单片机程序语言学习
  20. bootstrap role属性

热门文章

  1. Android自定义控件实战——滚动选择器PickerView
  2. eclipse设置护眼豆沙绿背景色以及字体颜色
  3. 单片机8位、16位、32位和64位系统在内存上的区别
  4. 啥是单点登陆?淘宝和天猫是如何实现同时登陆的?
  5. linux shell 10进制转16进制
  6. C语言实验:打印日历
  7. 浙江最新通信施工安全员机考真题及答案解析
  8. 二叉树叶子结点,非叶子节点以及深度的计算
  9. vscode如何添加本地python解释器、解析器 Interpreter?(Python: Select Interpreter)
  10. 计算机网络mac地址作用是什么,mac地址的作用是什么