MVC 模式是一种目前广泛流行的软件设计模式,随着 J2EE 的成熟,它正成为 J2EE 平台上推荐的一种设计模型,将业务处理与显示分离,将应用分为模型、视图及控制层,增加了应用的可扩展性。MVC 模式为搭建具有可伸缩性、灵活性、易维护性的 Web 系统提供了良好的机制。

Struts 框架

Struts 把 Servlet、 JSP、自定义标签和信息资源整合到一个统一的框架中,开发人员利用其进行开发时不用自己再编码实现全套 MVC 模式,极大地节省了时间 。

Struts 的工作流程为:首先, JSPview 发起一个以.do 表示的请求; ActionForm 封装用户请求数据,同时提供验证数据的功能; ActionServlet 根据 struts-config.xml 文件来得到处理这个请求的 Action 对象,并将请求发送给这个 Action 对象; Action 对象调用 model 去处理这个请求,将结果返回给 ActionServlet; ActionServlet 决定将结果返回给对应的 view;view 得到结果,并将它显示给用户。这里需要提到的是,可以通过 Struts 提供的 ActionForm封装 web form 中的元素,使重用 web 表单成为可能。

Spring 框架

Spring 核心本身是个容器,管理物件的生命周期、物件的组态、相依注入等,并可以控制物件在创建时是以原型(Pro-totype)或单例子(Singleton)的方式来创立。 Spring 的核心概念是控制反转(Inversionof Control, IoC),更具体而易懂的名词是依赖注入(Depen-dency Injection),使用 Spring,不必自己在程序码中维护物件的依赖关系,只需在构件中加以设定, Spring 核心容器会自动根据构件将依赖注入指定的物件。 Spring 的目标是实现一个全方位的整合框架,在 Spring 框架下实现多个子框架的组合,这些子框架之间可以彼此独立,也可以使用其他的框架方案加以替代, Spring 成为企业级应用程序一站式的解决方案。其架构如图 15-9 所示。

重量级的开发倒并不是指 EJB 或者是 JNDI,很大意义上,重量级的开发都是需要依赖一个非常庞大的容器系统进行开发,在 EJB 的开发中,所有开发的内容基本都需要放置在一个容器系统中进行运行这些容器因为基本针对大型企业应用, 所以体积庞大,占用资源过多,在开发的过程中效率很低。因为使用大型容器作为开发环境的话,很大一部分时间都用在了配置、运行这样的过程上,有时候改动一个小小的部分,需要等很长的时间才能看到结果。如果做单元测试也比较麻烦,虽然现在有很多针对容器的单元测试框架,但是还是没有很好地解决配置的等待问题,所以在开发者这里, EJB 逐渐失去了吸引力,因为感觉实在是太笨重了。 轻量级框架的优势很大程度上是因为加速了开发的速度,不用部署一个很庞大的容器系统就可以实现以前需要容器才能实现的功能,可以使用 Spring 代替 EJB 中的无状态的会话Bean,可以使用 Hibernate 代替 EJB 中的实体 Bean,而且可以直接写一个应用程序运行已经完成的系统,马上可以看到结果,做单元测试非常简单,不需要做太多的工作就可以构建系统,这些特性对于开发人员来说非常有吸引力。

轻量级架构和重量级架构相关推荐

  1. 轻量级锁_Java高级架构师-Java锁的升级策略 偏向锁 轻量级锁 重量级锁

    欢迎关注头条号:Java小野猫 这三种锁是指锁的状态,并且是专门针对Synchronized关键字.JDK 1.6 为了减少"重量级锁"的性能消耗,引入了"偏向锁&quo ...

  2. 轻量级虚拟桌面基础架构(VDI) 解决方案降低 IT 成本并保护知识产权

    轻量级虚拟桌面基础架构(VDI) 解决方案降低 IT 成本并保护知识产权 通过从任何地方和任何设备进行安全快速访问,为混合云环境启用远程工作. ETX突出优势 1.交付具有成本效益且可扩展的 VDI ...

  3. 使用轻量级虚拟桌面基础架构 (VDI) 解决方案降低 IT 成本并保护数字知识产权

    使用轻量级虚拟桌面基础架构 (VDI) 解决方案降低 IT 成本并保护数字知识产权 通过从任何位置和任何设备进行安全快速的访问,实现混合云环境的远程工作. 突出亮点: 1.提供经济高效且可扩展的 VD ...

  4. 轻量级Transformer模型ConvBERT架构及完整源码实现

    第28章:使用Local dependency轻量级Transformer模型ConvBERT架构内幕及完整源码实现 1,BERT依赖global self-attention而带来的问题分析 2,B ...

  5. 【计算机科学】mini-AORCNN:一种基于Bottleneck Transformer的轻量级微表情识别架构——CCF T2

    mini-AORCNN:一种基于Bottleneck Transformer的轻量级微表情识别架构 摘要 微表情是一种能够体现人真实情感的自发面部动作,其持续时间较短,动作幅度轻微,识别难度较大,但是 ...

  6. 软件架构万字漫谈:业务架构、应用架构与云基础架构

    软件架构万字漫谈:业务架构.应用架构与云基础架构 本部分节选自<软件架构设计> 软件开发就是把一个复杂的问题分解为一系列简单的问题,再把一系列简单的解决方案组合成一个复杂的解决方案.而软件 ...

  7. 架构漫谈:业务架构、应用架构与基础架构

    软件开发就是把一个复杂的问题分解为一系列简单的问题,再把一系列简单的解决方案组合成一个复杂的解决方案.而软件开发中最大的挑战,就是即能够快速高效地针对需求.环境的变化做出改变,也能够持续提供稳定.高可 ...

  8. 偏向锁、轻量级锁、重量级锁,Synchronized底层源码终极解析!

    synchronized是掌握Java高并发的关键知识点,底层源码更是面试重灾区.本文从源码学习synchronized的原理,讲解对象头.偏向锁.轻量级锁.重量级锁等概念. 扫码关注<Java ...

  9. 【服务化架构】SOA和微服务架构、灵活架构

    文章目录 一.SOA ESB 二.微服务 微服务和Docker 三.关于 SOA和微服务关系 的几种观点 四.QA 关于ESB的单点故障 关于微服务的去中心化 和 API网关 五.灵活架构 导读 SO ...

  10. 微服务架构 vs SOA架构

    微服务架构 vs. SOA架构 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载. 一.面向服务的架构SOA 面向服务的架构是一种软件体系结构,应用程序的不同组件通过网络上的通信协议向其 ...

最新文章

  1. 实现数组字符串翻转的两种方法
  2. python 表格格式输出_利用python对excel中一列的时间数据更改格式操作
  3. 移动端picker插件
  4. MySQL创建视图的语法格式
  5. springmvc教程(4)
  6. ComboBox控件-转
  7. php 连接oracle插入多张图片的方法
  8. constraintlayout_androidApi:ConstraintLayout
  9. python 统计excel表格_Python实现对excel文件列表值进行统计的方法
  10. 电脑常见故障_电脑知识打印机常见故障及排除方法系列(四)
  11. Selenium免密码登录学习的方法
  12. 树莓派安装系统和系统备份还原
  13. linux c 获取usb vid,Linux使用libudev获取USB设备VID及PID的方法
  14. 首届中国云南普洱茶茶王获奖名单及常识
  15. 一个高尚的人,一个纯粹的人,一个有道德的人,一个脱离了低级趣味的人,一个有益于人民的人。...
  16. 针对第2章习题6的SPJ数据库,为项目名称为“一汽”的工程项目建立一个供应情况的视图V_SPJ,视图中应包括供应商代码SNO,零件代码PNO,供应数量QTY,并针对该视图完成下列查询 (1)找出一汽
  17. uniapp App端后台间隔时间发送定位功能实现
  18. 如何从从U盘安装windows xp到EeePC的详细流程
  19. Footprint Analytics:元宇宙买房初体验
  20. 支付宝小程序控制硬件②】 全网首篇,个人支付宝小程序控制智能硬件esp8266,从设计电路到设计协议控制两盏LED灯调节亮度。

热门文章

  1. Yapi的安装与使用
  2. 北京新房成交10月下旬暴增 二手房均价年内首次微涨
  3. 小程序服务器装rsshub,RssHub 部署
  4. 【JS】秒杀倒计时制作
  5. 海思视频码率参数解析
  6. pythonmathcot函数_sin cos tan cot公式
  7. 提速数字化转型,云徙科技批量建设数字中台
  8. 微信小程序之使用云存储
  9. Computer:编程入门的简介相关的一些概念解释之详细攻略
  10. 一元多次方程近似解法