轻量级架构和重量级架构

 

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

Struts 框架

轻量级架构和重量级架构_第1张图片

 

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 所示。

轻量级架构和重量级架构_第2张图片

 

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

你可能感兴趣的:(系统架构)