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的框架整合方案。对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】

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确实使你能通过最简单可行的解决办法解决你的

问题。这些特性是有很大价值的。

Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它

对JDBC进行了轻量级的对象封装,使得Java程序员可以

使用对象编程思维来操纵数据库。Hibernate可以在应用

EJB的Java EE架构中取代CMP,完成数据持久化。它还

可以应用在任何使用JDBC的场合,既可以在Java的客户

端程序实用,也可以在Servlet/JSP的Web应用中使用

Hibernate的工作方式:

Hibernate不会对您造成妨碍,也不会强迫您修改对象

的行为方式。它们不需要实现任何不可思议的接口以便能

够持续存在。惟一需要做的就是创建一份 XML“映射文

档”,告诉Hibernate您希望能够保存在数据库中的类,

以及它们如何关联到该数据库中的表和列,然后就可以要

求它以对象的形式获取数据,或者把对象保存为数据。与

其他解决方案相比,它几乎已经很完美了。

运行时,Hibernate读取映射文档,然后动态构建Java

类,以便管理数据库与Java之间的转换。在 Hibernate

中有一个简单而直观的API,用于对数据库所表示的对象

执行查询。要修改这些对象,(一般情况下)只需在程序中

与它们进行交互,然后告诉Hibernate保存修改即可。类

似地,创建新对象也很简单;只需以常规方式创建它们,然

后告诉Hibernate有关它们的信息,这样就能在数据库中

保存它们。

使用Hibernate的场合:

既然Hibernate看起来如此灵活好用,为什么还要使用

其他的工具呢?下面有一些场景,可以帮助您做出判断(或

许通过提供一些比较和上下文,可以有助于鉴别非常适用

Hibernate的场合)。

如果应用对于数据存储的需要十分简单——例如,您只

想管理一组用户优先选择——您根本不需要数据库,更不

用说一个优秀的对象-关系映射系统了(即使它也如

Hibernate这般易于使用)!从Java 1.4开始,有一个标准

的Java Preferences API可以很好地发挥这个作用。

当然,还有其他的外部原因会导致采用另外的方法。比

如,在一个企业环境中,必须使用成熟的EJB架构(或者其

他的一些非普通对象映射系统)。可以为提供自己的数据存

储工具的平台量身定做代码,比如Mac OS X’s Core

Data。使用的可能是像XML DTD这样的存储规范,而它

根本不涉及关系数据库。

Swing

图形用户接口(GUI)库最初的设计目的是让程序员构建

一个通用的GUI,使其在所有的平台上都能够正常的显

示。但是比较遗憾的是AWT产生的是在各系统看来都同样

欠佳的图形用户接口,JAVA1.2为老的java1.0 AWT添加

了Java基础类(JFC),这是一个被称为“Swing”的GUI

的一部分。Swing是第二代GUI开发工具集,AWT采用了

与特定平台相关的实现,而绝大部分Swing组件却不是。

Swing是构筑在AWT上层的一组GUI组件的集合,为了保

证可移植性,它完全用Java语言编写,与AWT相比,

Swing提供了更完整的组件,引入了许多新的特性和能

力。Swing提供了更多的组件库,如:JTable,JTree,

Jcombox。Swing也增强了AWT中组件的功能。正是因

为Swing具备了如此多的优势所以我们以后在开发中都使

用Swing。JComponent类是Swing组件的基类,而

JComponent继承自Container类,因此,所有的Swing

组件都是AWT的容器。Swing采用了MVC设计模式。

END

更多推荐

Java EE开发四大常用框架