Java EE开发四大常用框架

本文介绍了Java EE开发中四大常用框架:Struts、Spring、Hibernate和Swing。Struts是一个基于MVC的框架,Spring是轻量级的全能整合框架,强调IoC和AOP。Hibernate是对象关系映射框架,简化数据库操作。Swing是Java的GUI库,提供了丰富的组件和MVC设计模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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图片

Tephra旨在构建一个稳定、高效、易于集群、快速扩展的JavaEE开发框架。目前,Tephra已经具备了以下特性: 提供类级别的热更新,但仅建议在需要快速修正严重BUG、并且无法立即进行全更新时使用。 提供全冗余方式的缓存,自动在每个节点间同步缓存数据,而每个节点都仅从本地内存中获取缓存数据,从而提供高效的执行效率,并且当部分节点宕机时仍旧能正常提供服务。当然,也允许使用Redis提供统一的中心节点缓存。此特性可用于多节点负载时提供不停服更新。 提供数据库读写分离、及读负载均衡,并且允许配置多个不同的数据库,甚至允许在运行期间增加新的数据库配置,并自动映射ORM。允许执行标准的SQL或存储过,同时提供了一个简单、轻量的ORM工具,并集成Hibernate、MyBatis为复杂ORM需求提供支持。 提供MongoDB工具实现对NoSQL的支持,支持负载均衡。 提供轻量级、快速响应的控制器,允许设置最大并发峰值,以确保在突如其来的并发攻击后能继续正常提供服务;也允许设置单IP最大并发量,确保小量IP并发攻击时仍能正常提供服务。允许发布为HTTP(S)、WebSocket、Socket服务。 提供JavaScript脚本引擎支持,允许JavaScript与JavaBean自由交互,并且可以发布JavaScript为服务;以及使用Javacript作为复杂规则验证器。 提供Hadoop存取支持。 模块化开发,使用注解简化配置,增强代码可读性与维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值