Java EE 开发四大常用框架 我们对 Java EE 的框架有过很多介绍, 本文将对 Java EE 中
常用的四个框 架做一下系统的归纳,希望大家喜欢。 Struts Struts 是一个基于 Sun Java EE 平台的 MVC 框架,主要是采用 Servlet 和 JSP 技术来实现的。 Struts 框架可分为以下四个主要部分,其中三个就和 MVC 模式紧密相关: 1、模型 (Model),本质上来说在 Struts 中 Model 是一个 Action 类(这个会在后 面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器 (Controller)向 Action 的转发过程是基于由 struts-config.
xml 文件描述的配 置信息的。 2、视图(View),View 是由与控制器 Servlet 配合工作的一整套
JSP 定制标签库 构成,利用她们我们可以快速建立应用系统的界面。 3、控制器(Controller),本质上是一个 Servlet,将客户端请求转发到相应的 Action 类。 4、一堆用来做 XML 文件解析的工具包,Struts 是用 XML 来描述如何自动产生一 些 JavaBean 的属性的, 此外 Struts 还利用 XML 来描述在国际化应用中的用户提 示信息的(这样一来就实现了应用系统的多语言支持)。 Spring Spring 是轻量级的 Java EE 应用程序框架。 Spring 的核心是个轻量级容器(container), 实现了 IoC(Inversion of Control) 模式的容器,Spring 的目标是实现一个全方位的整合框架,在 Spring 框架下实 现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方 案加以替代,Spring 希望提供 one-stop shop 的框架整合方案 。 Spring 不会特別去提出一些子框架来与现有的 OpenSource 框架竞争,除非它觉 得所提出的框架夠新夠好,例如 Spring 有自己的 MVC 框架方案,因为它觉得现 有的 MVC 方案有很多可以改进的地方,但它不强迫您使用它提供的方案,您可以 选用您所希望的框架来取代其子框架,例如您仍可以在 Spring 中整合您的 Struts 框架 。 Spring 的核心概念是 IoC,IoC 的抽象概念是「依赖关系的转移」 ,像是「高层 模组不应该依赖低层模组, 而是模组都必须依赖于抽象」 IoC 的一种表现, 是 「实 现必须依赖抽象,而不是抽象依赖实现」也是 IoC 的一种表现, 「应用程序不应 依赖于容器,而是容器服务于应用程序」也是 IoC 的一种表现。 Spring 的架构性的好处
Spring 能有效地组织你的中间层对象,无论你是否选择使用了 EJB。如果你仅仅 使用了 Struts 或其他的包含了 Java EE 特有 APIs 的 framework, 你会发现 Spring 关注了遗留下的问题。 Spring 能消除在许多工程上对 Singleton 的过多使用。根据我的经验,这是一 个主要的问题,它减少了系统的可测试性和面向对象特性。 Spring 能消除使用各种各样格式的属性定制文件的需要, 在整个应
用和工程中, 可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的 属性关键字或
系统属性,为此不得不读 Javadoc 乃至源编码吗?有了 Spring, 你可很简单地看到类的 JavaBean 属性。倒置控制的使用(在下面讨论)帮助完成 这种简化。Spring 能通过接口而不是类促进好的编程习惯,减少编程代价到几 乎为零。 Spring 被设计为让使用它创建的应用尽可能少的依赖于他的 APIs。在 Spring 应用中的大多数业务对象没有依赖于 Spring。 使用 Spring 构建的应用程序易于单元测试。 Spring 能使 EJB 的使用成为一个实现选择,而不是应用架构的必然选择。你能 选择用 POJOs 或 local EJBs 来实现业务接口,却不会影响调用代码。 Spring 帮助你解决许多
问题而无需使用 EJB。 Spring 能提供一种 EJB 的替换物, 它们适于许多 web 应用。例如,Spring 能使用 AOP 提供声明性事务而不通过使 用 EJB 容器,如果你仅仅需要与单个的数据库打交道,甚至不需要 JTA 实现。 Spring 为数据存取提供了一致的框架, 不论是使用 JDBC 或 O/R mapping 产品(如 Hibernate)。 Spring 确实