跟我学软件系统架构设计——如何合理地选择J2EE平台中的重量级框架和轻量级框架相关的应用技术
- 格式:pdf
- 大小:420.84 KB
- 文档页数:19
1.1跟我学软件系统架构设计——如何正确地实施面向框架的应用系统开发1.1.1面向框架的应用开发1、什么是应用框架(1)面向对象编程和面向组件编程1)面向对象技术促进了软件重用,但是,只实现了类和类继承的重用。
2)而面向组件编程进一步完善OOP,并使得软件能够以组件形式来重用,但在系统分析、架构和设计思想等方面并不能加以重用或者重用率并不高---另外,在系统的分布式异构互操作等方面也没有良好的解决方法。
因此,在软件开发中提出了许多方法,如系统体系结构、框架、设计模式等的应用。
(2)什么是应用框架●应用框架它提供了一个概括的体系结构模版可以用这个模板来构建特定领域中的应用程序;人们将相同类型问题的解决途径进行抽象并提供基本的资源,从而抽取成能够解决某一应用问题的模版。
●框架其实就是某种特定应用的半成品等待后来者做“二次开发”,最终实现为具体的应用系统。
当然,框架也是一组组件,同时也是成熟的不断升级的软件系统。
●框架不是“系统平台”而应该是“应用平台”我们常提及的“系统平台”,一般是一种操作系统、一种应用服务器、一种数据库软件或者是一种通信中间件等等,因此“系统平台”几乎成了所有系统软件的统称。
在平台的大家族中,框架的概念可能与近来人们常说的“应用平台”最为接近。
但由于“系统平台”主要指提供特定系统服务的系统软件,而框架则更侧重于设计、开发过程,或者可以说,框架通过调用系统平台提供的系统服务而发挥出特定的应用功能。
(3)为什么会出现应用框架一个应用系统主要是由业务功能组件和应用服务组件所构成的,而其中的应用服务组件是可重用的。
因此,把在不同应用系统中有共性的一些东西抽取出来,做成一个半成品程序---这样的半成品就是所谓的程序框架。
(4)目前J2EE平台中常用的开源框架2、为什么要用框架(1)目前企业级应用开发的客观现实因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。
基于J2EE的轻量级企业信息系统框架应用基于Struts、Spring和Hibernate对企业信息系统进行分层。
在强调它们技术原理的基础上并结合应用实例,提出三种开源框架的整合方式,应用它们作为一种企业信息化解决方案。
实现了系统各层次的松耦合,提高了扩展性、复用性和可维护性,具有一定的现实意义。
标签:企业信息化轻量级框架Struts Spring Hibernate J2EE目前软件系统发展已经相当复杂。
大型企业信息系统的设计者越来越注重通过一个合适的框架完成系统开发。
基于J2EE企业信息系统的平台无关性、层次性、安全性与可扩展性正成为企业信息化的主要解决方案。
因此本文通过集成Struts、Spring和Hibernate来实现模块间的解耦,以提高企业信息系统的扩展性、复用性和可维护性。
一、J2EE框架技术Struts起源于SmallTalk的MVC。
即Model、View和Controller。
由Controller 解耦显示逻辑与业务逻辑,支持实现松耦合结构。
面对WebWork、Spring MVC、JSF、Tapestry等,Struts设计成熟、信息资源丰富、开发群体广泛,是目前最常用的表现层MVC。
Spring是一种为解决企业应用程序开发复杂性的轻量级应用程序框架和容器。
集成了J2EE许多最佳与前驱性实践。
具有传统EJB的关键服务而不依赖于任何组件替代重量级EJB框架。
擴展了所集成的组件并提供更高级功能。
Spring 完成了实际开发所需的单态模式与工厂模式。
核心机制是DI(Dependency Injection)与IOC(Inversion of Control)。
通过DAO和ORM 实现数据访问的抽象模块,并支持Hibernate。
Hibernate是低侵入ORM(Object-Relationship Mapping)框架。
联接了面向对象程序设计语言和关系型数据库。
实现了对JDBC的轻量级封装。
2.1软件架构和J2EE开发平台2.1.1软件架构软件架构(software architecture)是一系列相关的抽象模式的有机结合,用于指导大型应用系统各个方面的设计,是一个应用系统的草图。
软件架构描述的对象是指直接构成系统的抽象组件以及各个组件之间的连接关系,明确和细致I,,.“地描述组件之间的通讯。
在实施阶段,这些抽象组件被细化为实际的组件,例如具体的某个类或者对象。
在面向对象领域中,组件之间的连接通常以接口来实现。
软件体系结构是构建计算机应用软件的基础,在系统设计过程中,一个软件架构师设计软件构架,以作为满足不同需求的实际应用系统设计方案的基础。
对于开发Web应用,要从头开始设计并开发出一个可靠、稳定的框架是一件较难的事。
随着Web开发技术的日趋成熟,在Web开发领域出现了一些现成的可以利用的优秀框架,开发者可以直接使用它们,J2EE平台及J2EE范畴内的Struts, Spring, Hibernate等就是比较成熟的框架。
下面分别来阐述。
2. 1. 2 j2EE开发平台1. J2EE概念Java 2平台目前有3个版本,它们是适合于小型电子设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition, J2ME)、适用于桌面应用系统的Java 2平台标准版(Java 2 Platform Standard Edition, J2SE)、适用于开发服务器应用程序和服务的Java 2平台企业版(Java 2 Platform EnterpriseEdition, J2EE)。
其中,J2EE是一种利用Java 2平台来简化企业应用系统的开发、部署和管理相关的复杂问题的体系结构。
J2EE技术核心是Java平台或Java2平台的标准版,J2EE巩固了标准版中的许多优点。
J2EE最终目的就是成为一个能够使企业开发者大幅缩短应用软件投放市场时间的体系结构。
Java框架的选择选对适合项目的开发框架在当今软件开发行业中,Java已经成为一种非常流行和强大的编程语言。
为了更高效地开发Java应用程序,很多开发者会选择使用Java 框架。
然而,在选择合适的开发框架时,开发者需要考虑多个因素,包括项目需求、开发团队经验和框架的性能等。
本文将讨论Java框架的选择并提供一些帮助开发者选取适合自身项目的框架的建议。
1. 确定项目需求在选择Java框架之前,首要任务是明确项目需求。
不同的项目可能有不同的性质和目标。
例如,如果你正在开发一个大型的企业级应用程序,那么你可能需要选择一个功能齐全、可扩展性强的框架,如Spring Framework。
然而,如果你只是在开发一个简单的Web应用程序,那么选择一个轻量级框架,如Spring Boot,可能更合适。
2. 考虑开发团队经验开发团队的经验对于框架的选择非常关键。
如果你的团队已经熟悉并擅长使用某个框架,那么选择该框架会提高开发效率和减少学习成本。
另一方面,如果你的团队对某个框架并不熟悉,那么选择一个更为简单易用的框架可能更加明智。
3. 考虑框架的生态系统一个好的框架应该有一个强大的生态系统,包括活跃的社区支持、丰富的文档和示例代码。
这些资源能够帮助开发者解决遇到的问题并提升开发效率。
因此,在选择框架时,建议考虑框架的社区活跃度,并查看是否有足够的支持和资源可用。
4. 考虑框架的性能性能是开发过程中非常重要的因素之一。
选择一个性能良好的框架可以提高应用程序的响应速度和用户体验。
对于性能要求较高的项目,可以选择基于轻量级的框架,如Spark或Play Framework等。
另外,定期对框架进行性能测试和优化也是提高应用程序性能的重要步骤。
5. 考虑框架的可扩展性在项目开发的早期就要考虑到项目可能的扩展需求。
一个具有良好可扩展性的框架可以让你更容易地添加新功能和模块。
因此,在选择框架时,建议考虑框架的扩展性和是否有足够的插件和扩展库可用。
Java框架对比选取适合你项目的最佳框架随着Java语言的广泛应用,众多的Java框架也应运而生,为开发人员提供了丰富的选择。
然而,在众多框架中选择适合自己项目的最佳框架,需要综合考虑各种因素。
本文将对几种常见的Java框架进行对比,并给出选取适合项目的最佳框架的建议。
一、Spring框架Spring是一个开源的轻量级应用开发框架,它提供了一系列的容器和模块,用于简化Java应用程序的开发。
Spring框架具有灵活性强、易于集成和扩展的特点,可以适用于各种规模的项目。
同时,Spring 框架还提供了许多功能强大的特性,如依赖注入、面向切面编程等,可以极大地提高开发效率。
二、Hibernate框架Hibernate是一个开源的对象关系映射工具,用于将Java对象映射到关系数据库中。
它提供了一种方便的方式来进行数据库操作,减少了开发人员的工作量。
Hibernate框架具有强大的查询功能、缓存管理和事务控制等特点,使得开发人员可以更加专注于业务逻辑的实现。
三、MyBatis框架MyBatis是一个开源的持久层框架,通过XML或注解的方式将SQL语句与Java代码进行映射。
MyBatis框架具有简单易学、灵活性高的特点,适用于中小型项目的开发。
与Hibernate相比,MyBatis更加轻量级,对于对SQL有更高要求的开发人员来说,更容易掌握和调优。
四、Spring Boot框架Spring Boot是基于Spring框架的快速开发框架,通过自动化配置和约定大于配置的原则,简化了Java应用的开发过程。
Spring Boot框架提供了一整套开发工具和运行时环境,使得开发人员可以快速构建和部署应用程序。
同时,它还提供了丰富的插件和扩展机制,可以满足不同项目的需求。
五、Struts2框架Struts2是一个开源的MVC框架,用于构建基于Java的Web应用程序。
它采用了经典的MVC架构,将业务逻辑、数据模型和用户界面进行分离,使得开发人员可以更好地管理和维护应用程序。
如何选取合适的软件框架在当今信息技术快速发展的时代,软件开发已经成为了人们生活的重要部分。
然而,在软件开发中使用合适的软件框架却是开发出高质量、高效率的产品的关键之一。
那么,如何选取合适的软件框架呢?下面,我将从以下几个方面为大家讲解。
一、了解并选择适合自己的框架类型在选择软件框架之前,我们首先需要了解和选择适合自己的框架类型。
常见的框架类型包括前端框架、后端框架和全栈框架。
前端框架主要用于实现页面交互和界面美化。
常见的前端框架有React、Vue、Angular等。
在选择前端框架时,需要考虑框架的性能、易用性和扩展性等因素。
后端框架主要用于处理后台逻辑和数据存储等工作。
常见的后端框架有Django、Flask、Spring等。
在选择后端框架时,需要考虑框架的稳定性、安全性和协作能力等因素。
全栈框架则是将前后端框架集成在一起,可以快速构建整个应用程序。
常见的全栈框架有MEAN、MERN、LAMP等。
在选择全栈框架时,需要考虑框架的灵活性、可扩展性和性能等因素。
二、了解和比较框架的功能和性能在选择框架时,我们还需要了解和比较框架的功能和性能。
常见的比较框架的指标包括框架的速度、内存占用、安全性、扩展性、文档和社区支持等因素。
在比较框架的速度时,可以使用测速工具进行测试。
在比较框架的内存占用时,可以使用内存监控工具进行测试。
在比较框架的安全性时,可以查看框架的安全文档和社区反馈等信息。
在比较框架的扩展性时,可以查看框架的插件和扩展包等信息。
在比较框架的文档和社区支持时,可以查看框架的官方文档和社区讨论等信息。
三、考虑框架的成本和可维护性在选择框架时,我们还需要考虑框架的成本和可维护性。
框架的成本包括框架本身的成本和在使用框架时需要的技术成本。
在考虑框架的可维护性时,需要考虑框架的代码可读性、可测试性、可扩展性和可维护性等因素。
框架本身的成本是指使用框架所需的软件许可证、培训成本等费用。
在使用框架时需要的技术成本包括学习曲线、开发团队的技术能力等因素。
-3628-0引言基于J2EE 技术的Web 应用已经被众多企业采用。
大多数的企业级的应用有两种框架,一种是以EJB 为代表的重量级框架,另一种则是以Struts 、Spring 、Hibernate 为代表的轻量级框架[1]。
在传统的J2EE 体系中,主要靠EJB 组件来实现业务逻辑,然而它是重量级组件,增加了部署等方面的难度,在很多情况下的企业级应用需要一个轻量级的解决方案。
随着以Spring 为代表的轻量级框架的出现,它们为企业级的应用提供了更多的选择。
轻量级框架主要是简化的编程模型。
轻量级框架旨在消除与传统J2EE API 有关的不必要的复杂性和限制,它也将缩短应用程序的开发部署时间,这样做的直接好处就是它们的启动时间缩短了,对运行环境的要求降低了,也减轻了测试的工作量[2]。
1J2EE 的轻量级框架在J2EE 轻量级框架的应用体系中,表现层采用了Struts框架,中间业务逻辑层采用了Spring 框架,数据持久层采用了Hibernate 框架。
上述这样的体系结构也符合了MVC 模式的要求。
1.1表现层框架Apache StrutsStruts 是基于MVC 模式的开源Web 框架。
它继承了MVC 设计模式的各种特性,提供了对开发MVC 系统的底层支持,其中对应用系统的用户界面显示和数据的后端业务逻辑代码进行了抽象,并且整合了Servlet 与JSP 在Web 应用系统开发上的优势。
它主要包括模型、视图和控制器3个部分。
模型在Struts 框架中与其它部分耦合度最低。
FormBean 是Model 的代表,每个FormBean 都必须继承于ActionForm 类,其主要作用是向作为Controller 一部分的Action 对象提供数据。
视图通常采用JavaServerPage (JSP )技术构造。
在JSP 页面中,既可以使用HTML 或者XML 静态文本来格式化页面,又可以通过动态插入解释特殊行为标记的内容来响应用户请求。
软件开发工具和框架的比较和选择对于软件开发者来说,一个好的工具和框架是非常重要的。
有了它们,可以提高开发效率,减少错误,提高代码质量,并显著减少开发时间。
但是市场上有很多种不同的开发工具和框架,选择正确的工具和框架也不是一件容易的事情。
在本文中,我们将讨论常见的软件开发工具和框架,对它们进行比较和选择。
一、集成开发环境(IDE)开发环境是软件开发的核心。
在市场上有很多不同的IDE,如Eclipse、NetBeans、IntelliJ IDEA和Visual Studio等。
这些IDE可以帮助开发者轻松地创建和管理项目,提高开发效率,而且已经具有各种快捷键和工具操作,以便能够高效地安排开发工作。
在选择IDE时,要考虑优秀的集成系统,反应快速的编译器和调试器,对代码的智能提示和错误诊断支持,以及良好的插件管理系统。
IntelliJ IDEA是一个非常强大的IDE,被认为是最好的Java开发工具之一。
这个集成开发环境提供了许多不同的功能来优化开发过程,如版本控制,代码检查和智能提示功能。
它也被广泛用于Kotlin、Groovy等编程语言中。
NetBeans是另一个流行的开发工具。
它是免费的,与许多不同类型的开发语言和技术兼容,包括Java、C ++、PHP、HTML和JavaScript等。
它的特点是它拥有非常优秀的GUI开发工具,让开发人员可以更快地创建窗口和表单。
Visual Studio是一个非常强大的IDE,专门用于.NET开发。
它也提供了高效的GUI开发工具,可以让开发人员为Windows平台快速编写应用程序。
Eclipse也是一个非常流行的开发工具,尤其是在Java开发者中。
它是免费的,通过插件管理系统可以适用于许多领域,包括Web、移动应用程序和嵌入式系统开发。
二、版本控制工具软件开发中不可避免地包括和团队协作。
因此,版本控制工具是必不可少的。
在市场上,最流行的版本控制工具是Git和Subversion(SVN)。
软件开发框架选择指南根据需求选择合适的框架软件开发框架选择指南:根据需求选择合适的框架在进行软件开发时,选择适合的开发框架是至关重要的一步。
一个合适的开发框架可以大大提高开发效率,降低开发成本,并且提供稳定可靠的应用程序。
然而,面对市场上众多的开发框架选择,如何选择一个最适合自己项目需求的框架可能会令人困惑。
本篇文章将为您提供一些指导原则,帮助您进行框架选择。
一、了解项目需求在选择开发框架之前,首先需要明确自己的项目需求。
您需要考虑以下几个问题:1. 项目规模:是一个小型的网站还是一个大型的企业应用?2. 技术要求:是否需要一个强大的前后端分离框架?是否需要支持多平台开发?3. 团队规模和经验:您的团队人数和技术水平如何?4. 时间和预算:您有多少时间来开发项目?您有多少预算来购买或订阅框架支持和维护?二、了解常见开发框架在选择一个开发框架之前,对于市场上常见的开发框架有一定的了解是很有帮助的。
以下是一些主流的开发框架,供您参考:1. 前端框架:React、Angular、Vue.js等2. 后端框架:Spring MVC、Django、Ruby on Rails等3. 全栈框架:Express.js、Meteor.js等4. 移动端框架:React Native、Flutter、Ionic等每个框架都有其特点和适用场景,您可以通过学习和实践,选择其中一个或几个框架来满足您的需求。
三、考虑易用性和学习曲线一个易于使用和学习的开发框架可以显著提高开发效率,减少开发团队的学习成本。
当选择框架时,您可以考虑以下几点:1. 文档和教程:框架是否有详细的官方文档和易于理解的教程?2. 社区支持:框架是否有强大的开发者社区,可以提供及时的技术支持和解答问题?3. 学习曲线:框架是否容易学习和上手?四、考虑可维护性和生态系统一个拥有良好的可维护性和活跃的生态系统的开发框架可以为您的项目提供长期的支持和发展。
以下几个方面需要考虑:1. 框架更新和支持:框架是否经常更新和提供长期支持?2. 社区活跃度:框架是否有稳定的开发者社区,提供持续的贡献和改进?3. 第三方库和插件:框架是否有丰富的第三方库和插件,可以满足您的扩展需求?五、考虑性能和安全性性能和安全性是一个项目不可忽视的重要因素,选择一个高性能和安全的开发框架可以保障您的项目质量。
1.1跟我学软件系统架构设计——如何合理地选择J2EE平台中的重量级框架和轻量级框架相关的应用技术1.1.1J2EE平台中的重量级框架技术1、J2EE平台中的重量级框架技术(1)J2EE平台中的重量级框架代表技术----EJB组件技术●J2EE提供了一套企业级Java应用框架(一种标准),是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
●J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。
(2)J2EE EJB组件技术产生的背景●提出J2EE技术平台的初衷正是为了解决当时的两层模式(Client/Server)的弊端----我们知道,在传统的C/S体系结构设计模式中,客户端担当了过多的角色而显得臃肿----也就是我们经常将它称为“胖客户端”的原因。
●J2EE提供了多层架构的企业应用系统的“一揽子解决方案”而使用J2EE 技术平台所开发出的企业级应用系统,在应用模型上将传统的C/S两层化模型中的不同层面再切分成许多层,从而产生出多层架构的企业应用系统----N层结构。
J2EE 技术平台中典型的四层结构中的不同组件,一个多层化应用能够为不同的每种服务提供一个独立的层。
●运行在客户端机器上的客户层组件●运行在J2EE服务器上的Web层组件●运行在J2EE服务器上的业务逻辑层组件●运行在EIS或数据库服务器上的业务信息系统2、应用J2EE技术平台的某个系统的层次划分示例(1)标准的分层(2)一个具体的应用示例3、J2EE平台中的主要的13种技术规范(1)JDBC(Java Database Connectivity)JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。
(2)JNDI(Java Name and Directory Interface)JNDI API被用于执行名字和目录服务。
它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。
(3)EJB(Enterprise JavaBean)J2EE技术之所以赢得某体广泛重视的原因之一就是EJB。
它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。
EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。
容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。
但这里值得注意的是,EJB并不是实现J2EE的唯一途径。
正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。
(4)RMI(Remote Method Invoke)正如其名字所表示的那样,RMI协议调用远程对象上方法。
它使用了序列化方式在客户端和服务器端传递数据。
RMI是一种被EJB使用的更底层的协议。
(5)Java IDL/CORBA在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。
他们可以创建Java 对象并使之可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。
后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。
(6)JSP(Java Server Pages)JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
(7)Java ServletServlet是一种小型的Java程序,它扩展了Web服务器的功能。
作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。
Servlet提供的功能大多与JSP 类似,不过实现的方式不同。
JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。
(8)XML(Extensible Markup Language)XML是一种可以用来定义其它标记语言的语言。
它被用来在不同的商务过程中共享数据。
XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。
通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。
(9)JMS(Java Message Service)JMS是用于和面向消息的中间件相互通信的应用程序接口(API)。
它既支持点对点的域,有支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。
JMS还提供了另一种方式来对您的应用与旧的后台系统相集成。
(10)JTA(Java Transaction Architecture)JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。
(11)JTS(Java Transaction Service)JTS是CORBA OTS事务监控的基本的实现。
JTS规定了事务管理器的实现方式。
该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。
JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
(12)JavaMailJavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。
不仅支持SMTP服务器,也支持IMAP服务器。
(13)JAF(JavaBeans Activation Framework)JavaMail利用JAF来处理MIME编码的邮件附件。
MIME的字节流可以被转换成Java对象,或者转换自Java对象。
大多数应用都可以不需要直接使用JAF。
4、EJB 3.0进一步完善了EJB2.XJ2EE1.4标准规定的EJB 2.1框架缺少设计且实现起来有些过于复杂。
当前J2EE5.0的新规范提出的EJB 3.0的目标就是简化开发,借鉴了一些基于POJO的思想,它相对于EJB2.1中两个重要的变化分别是:(1)一是使用了Java5中的程序注释工具,注释取代了过多的XML配置文件并且消除了严格组件模型需求;(2)二是采用了基于Hibernate和TopLink思想的O/R Mapping模型。
5、J2EE5.0的新规范中定义企业应用三个层次的标准实现(1)表现层采用JSF(Java Server Face)JSF的开发流程的核心是事件驱动,组件和标签的封装程度非常高,很多典型应用已经不需要开发者去处理http。
整个过程是通过IoC(依赖注入)来实现的。
(2)业务组件层采用EJB3.0的Session BeanEJB3.0允许开发者使用藕合松散的组件来开发应用,这些组件通过自己发布的商业接口来耦合,不必像EJB 2.1规范定义的那样一个Bean必须遵守的严格的组件模型,每一个EJB类必须从某一种抽象类中继承,并为容器提供了回调的钩子。
(3)持久层采用EJB3.0实体Bean持久化模型吸收了Hibernate的一些思想采用O/R Mapping模式, EJBQL也有许多重要的改变。
6、J2EE的容器和组件的结构(1)它是“容器和组件”式的体系架构在这种体系架构下,J2EE 服务器能够以容器的形式为所有的部署在容器内的各种类型的组件提供后台服务. 因此我们就不用再自己开发这种服务, 而只需要集中精力来解决我们的业务问题的具体实现。
(2)J2EE规范中所定义的容器所应该提供得内在服务支持这主要包括安全,事务管理,JNDI(Java Naming and Directory Interface)寻址,远程连接等服务,以下列出最重要的几种服务:●J2EE安全(Security)模型可以让我们配置 Web 组件或Enterprise Bean组件,这样只有被授权的用户才能访问系统资源。
每一客户属于一个特别的角色,而每个角色只允许激活特定的方法。
我们只需要在Enterprise Bean组件的部署描述中声明角色和可被激活的方法。
由于这种声明性的方法,我们不必编写加强安全性的规则。
●J2EE 事务管理(Transaction Management)模型这让我们指定组成一个事务中所有方法间的关系,这样一个事务中的所有方法被当成一个单一的单元。
当客户端激活一个Enterprise Bean组件中的方法时,容器将自动地介入一管理事务。
因有容器管理事务,我们在Enterprise Bean组件中就不必对事务的边界进行编码---因为,实际要求控制分布式事务的代码会非常复杂。
而我们只需在部署描述文件中声明Enterprise Bean组件的事务属性,而不用编写并调试复杂的代码。
容器将读此文件并为我们处理此Enterprise Bean组件中的事务。
●JNDI 寻址(JNDI Lookup)服务向企业内的多重名字和目录服务提供了一个统一的接口,这样应用程序组件可以访问名字和目录服务。
●J2EE远程连接(Remote Client Connectivity)模型管理客户端和Enterprise Bean组件间的低层交互. 当一个Enterprise Bean组件创建后, 一个客户端可以调用它的方法就象它和客户端位于同一虚拟机上一样。
●生存周期管理(Life Cycle Management)模型管理(创建和销毁)一个Enterprise Bean组件在其生存周期中将会历经几种状态。
容器创建Enterprise Bean组件,并在可用实例池与活动状态中移动它,而最终将其从容器中移除。
即使可以调用Enterprise Bean组件的create及remove方法,容器也将会在后台执行这些任务。
●数据库连接池(Database Connection Pooling)模型它是一个有价值的资源,因为获取数据库连接是一项耗时的工作,而且连接数非常有限。
容器通过管理连接池来缓和这些问题。
Enterprise Bean组件可从池中迅速获取连接。
在Enterprise Bean组件释放连接之可为其他Enterprise Bean组件使用。
1.1.2J2EE平台中的轻量级框架技术1、J2EE平台中的轻量级框架技术由于EJB需要依赖容器并且EJB容器在设计上因为要考虑多方面的功能,所以在其内核上总是会显得臃肿。
因为,不需要的东西存在肯定会影响效率;同时,EJB不能根据项目需求对EJB整体包括EJB容器进行可配置式的切割。