基于Spring的轻量级JavaEE应用与开发

时间:2022-10-07 09:14:58

基于Spring的轻量级JavaEE应用与开发

摘要:在这篇文章里,将要对基于Spring的轻量级框架做一个简单的介绍。介绍Spring框架的一些基本概念。设计了基于Spring的轻量级JavaEE应用的设计方案。让读者了解使用轻量级框架开发JavaEE应用。

关键词:Spring;轻量级框架;JavaEE

中图分类号:TP31 文献标识码:A文章编号:1009-3044(2008)20-30275-02

Spring Based Lightweight Frameworks JavaEE Application and Development

LIU Zhi-liang1,2, LIU Yuan-yuan1,2

(1.The College of Electrical Engineering & Information Techology of China Three Gorges University, Yichang 443002,China; 2.Wuhan Vocational College of software and engineering, Wuhan 430205,China)

Abstract:This article is an overview of Spring based lightweight frameworks application. It introduces the concepts of Spring and lightweight frameworks. It’s design a solution to JavaEE application with Spring based lightweight frameworks. Thus to let you understand how to develop J2EE with Spring based lightweight frameworks.

Key words:POJO; lightweight framework; JavaEE

今天,越来越多的的企业开发人员希望能够快速开发安全可靠的、可扩展的分布式企业应用,尤其是以浏览器为前端的Web应用。随着企业应用的规模的快速增长,越来越多的企业将JavaEE平台作为企业级开发的基础。

1 传统JavaEE开发模式

在JavaEE平台诞生的日子里,JavaEE几乎就是企业级开发的代名词,当然作为JavaEE中最核心的EJB技术,也一度成为JavaEE应用的核心。EJB框架提供了大量的有用的服务和操作,简化了分布式应用的开发时间。比如:EJB提供的声明式事务:EJB容器为应用自动的开始、提交和回滚事务,使我们无须再编写大量的事务管理代码。另外使用企业级Java Bean(Enterprise Java Bean)完成业务逻辑能参与在远程客户端的分布式事务。EJB还能提供声明式的安全机制,它让我们几乎可以不必写再安全代码。

然而,EJB在带来了这些好处的同时,也带来了不必要的复杂性:首先编写EJB组件是复杂的,为了实现一个EJB组件,除了EJB本身的实现类外,还不得不编写额外的接口。此外,部署和测试EJB也是非常复杂的事情。

2 基于Spring的轻量级JavaEE框架

随着EJB带来如此不必要的复杂,许多开发人员开始思索和反思,并试图以更简单的Java技术来简化JavaEE的开发。Rod Johnson 总结了他数年的JavaEE项目经验,提出了一系列以轻量级框架为核心的全新的JavaEE设计思想。并发展成为Spring框架。通过Spring这个轻量级框架,我们可以轻松的实现过去必须使用复杂而烦琐的EJB才能实现的功能。更重要的是Spring抛弃了EJB这种重量级组件,以JavaBean作为实现轻量级框架的组件,使JavaEE的开发更加简单,而且降低了应用的耦合。

Spring为企业开发提供了一个轻量级的解决方案。该方案包括:基于依赖注入的核心机制,基于AOP的声明式事务管理与多种持久层技术的整合,以及优秀的Web MVC框架等。

Spring为J2EE的业务逻辑层、表现层及数据持久层都提供了极好的解决方案,因为Spring不仅仅是一种框架,而且提供了一种企业级应用的开发规范。Spring是实际开发的抽象,其提供的模版设计大大简化了应用的开发。

Spring的系列Template将通过步骤以优雅的方式完成,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业级应用的开发效率。

Spring支持对POJO的管理,能将J2EE的各层应用“焊接”在一起,甚至这些对象无需是标准的JavaBean。

3 构架性构架

基于Spring的轻量级JavaEE框架和传统的JavaEE应用系统一样,主要有三种核心构件:业务服务层,在成功的应用系统中,它占有最主导的地位;表示层:它可以是一个UI,也可以是一个远程门面;数据访问层:它管理对象的持久化。

3.1 业务服务层

一个成熟的架构中必须包含一个严格而完备的服务层,它是JavaEE应用的核心。从分层上看,业务服务层位于中间层次,这个层完成业务逻辑功能,并且把业务逻辑提供给客户端(比如Web用户界面或桌面用户界面等)。在基于Spring的轻量级JavaEE框架中使用POJO构成服务层,它们运行在Spring轻量级容器中,由Spring来管理它们,这样就能够取代EJB原有的结构,而EJB大部分的复杂性。

3.2 数据访问层

数据访问层负责数据持久化以及对持久化数据的访问。数据访问层设计的目的是为系统提供一个独立的、统一的、安全的、高效的数据持久机制,将复杂的业务逻辑和数据管理分开,从而降低系统的耦合度,提高系统的健壮、可维护性和可扩展性。传统的JavaEE中数据访问技术包括JDBC和entity bean。而我们的轻量级JavaEE框架推荐使用对象关系映射ORM(Object/Relational Mapping)持久化策略。现在有许多现有的O/R框架,比如Hibernate、iBatis等。Spring自身并没有提供任何ORM方案,但Spring的ORM为集成许多流行的ORM框架提供了良好的支持,可以非常方便的将其纳入到Spring的事务管理中。而且Spring DAO定义了一个访问数据库的一致的接口,大大提高了系统的开发效率。

3.3 表示层

表示层是系统和用户交互的部分,最常见的就是通过Web界面提供企业服务。表示层向用户展现了系统的功能,响应用户的请求,并且向用户层现处理结果。成熟的方式是通过MVC(模型-视图-控制器)模式来组织表示层。分离用户界面代码和业务逻辑。然后通过控制器匹配视图和模型,减少系统中的耦合。Spring提供一个全功能的MVC框架,供系统使用。另外Spring也可以很好的集成Struts、WebWork等当前流行的MVC框架。

上图向我们展示了轻量级JavaEE构架方案。从上图可以看到,轻量级容器是整个系统的核心。所有的Java类都运行在同一个虚拟机中。从用户角度看,Web层是由MVC框架提供的。我们可是使用专用的MVC框架,比如Struts或WebWork或Spring自带的MVC框架。业务对象是POJO,运行在轻量级容器里。AOP的拦截机制能够增强业务对象,从而实现企业级服务,通过接口访问业务对象。数访问机制可以通过O/R映射实现,该层能够通过透明的持久化;如果O/R映射在某些情况下不能很好的应用,也可以使用JDBC实现。

4 结束语

即使拥有良好的工具和优秀技术,应用软件开发也是困难重重。应用开发往往牵扯到方方面面,每件事情都难以控制,而且,开发周期也很难把握(除非它的确是一个重量级的复杂应用,倒也有情可原)。Spring提供了一种轻量级的解决方案,用于建立“快装式企业应用”。在此基础上,Spring还提供了包括声明式事务管理,RMI或Web Services远程访问业务逻辑,以及可以多种方法进行的持久化数据库地解决方案。另外,Spring还有一个全功能的 MVC框架,并能透明的把 AOP 集成到你的软件中去。你可以把Spring当作一个潜在的一站式企业应用。或者,把Spring看作一个标准开发组件,根据自己的需要,只取用它的部分组件使用而无需涉及其他。例如,你可以利用控制反转容器在前台的展现层使用Struts,还可以只使用 Hibernate集成编码 或是 JDBC抽象层 去处理数据存储。Spring被设计成(并将继续保持)无侵入性的方式,意味着应用几乎不需要对框架进行依赖(或根据实际使用的范围,将依赖做到最小)。

笔者现在的JavaEE应用项目全部采用这种基于Spring的轻量级的JavaEE应用,实践证明开发效率比以前提高了许多。除了上面介绍的基本框架之外,还应用到了使用Compass框架实现全文检索功能,使用Acegi实现安全框架。

参考文献:

[1] Rod Johnson.Expert One-on-One J2EE Design and Development[M].Indiana:Wiley publishing,Inc 2003.

[2] Rod Johnson.Expert One-on-One Development J2EE Without[M].Indiana:Wiley publishing,Inc 2004.

[3] 廖雪峰.Spirng2.0核心技术与最佳实践[M].北京:电子工业出版社,2007.

上一篇:巧用网络资源制作部门网页 下一篇:高等学校网络中心数据备份策略及其实现