转:运用J2EE创建灵活易扩展的企业应用程序探讨

J2EE常用技术架构说明 本文介绍了6种常见Java技术框架的架构特点:1. Spring框架采用分层架构,核心包括IoC容器、AOP支持、数据访问(JDBC/ORM)和企业服务集成;2. iBATIS作为半自动ORM框架,通过SQL映射文件实现灵活的数据访问控制;3. Struts1采用MVC模式,通过ActionServlet控制器分离业务逻辑和视图;4. Struts2通过拦截器机制解耦业务逻辑与Servlet API;5. Hibernate提供完整的对象关系映射,核心接口包括Session、Transaction等; 阅读详情
导读:
  在J2EE技术飞速发展的今天,各种技术框架和设计模式层出不穷,每种技术都有各自的优势与劣势。目前,没有一种技术处于绝对的霸主地位,如何使我们的应用程序不过多地依赖某种实现技术,具有强的可扩展性,同时,能更好地集成各种技术框架,使他们发挥最大的优势,是我们创建企业应用时,应该考虑的问题。本文主要介绍了笔者基于SOA(Service Oriented Architecture)思想而设计的MiniSOA构架的设计原理,核心组件与使用示例,它能很好地帮您集成各种技术,使您轻松地选择自己的表现层、业务层和数据持久层,“无痛”切换各个层面的技术实现,降低各个层面的耦合性,同时满足多小组的团队开发,提高开发效率,最大限度地发挥开发人员的技术优势。
  
   引言
  随着J2EE的飞速发展,已经有越来越多的企业应用程序以J2EE技术为其构建的基石,J2EE本身并不是产品,它只是制定了一套创建企业应用程序的规范,不同厂商根据J2EE规范,创建了符合J2EE规范的产品,这给予了我们更多的选择创建企业应用的平台。
  
  一个典型的J2EE的应用,至少应该包括以下三部分:表现层,业务逻辑层和数据持久层,为了更加容易地创建企业应用程序,许许多多的Framework涌现出来,表现层我们可以选择Struts, JSF, Tapestry, WebWork, Velocity等, 数据持久层我们可以选择原始的JDBC, ORMapping tools(Hibernate,toplink等),SQLMapper tools(Ibatis),JDO, EJB(Entity Bean)等,业务逻辑层我们可以用普通的JAVA Beans,也可以用EJB(Session Bean)。每种技术都有它的优点与缺点,各自有各自的适用范畴,例如EJB可以很好地进行分布式处理和Object Cache等,但EJB的运行需要EJB容器,开发调试起来很不方便,特别在需求不确定性很大、模型不稳定的情况下,实在是一种重量级别的开发;而JAVA BEAN则是一种很轻量级的方式,开发调试容易,但又很难实现分布式处理。在各种技术纷争的今天,暂时还没有一种技术处于绝对的霸主地位,在这种条件下,我们不能把“赌注“押在任何一种技术上,如何使我们的应用程序有很高的灵活性和易扩展性是我们要仔细研究的课题。
  
  在实际的项目中,关于应用程序开发时所用技术的问题,大致存在两种情况,一种是构架师或技术经理没有严格限定用什么技术来实现具体的业务逻辑或者只有简单的开发规范,程序员在开发时,只是依据自己的技术背景,选择自己熟悉的实现方式,这种情况一般属于横向开发,在小的项目中,每个人只做自己负责的一个模块,从表现层,业务逻辑层,一直到数据层,都由同一个人来负责,这种方式给了技术人员更多的自我发挥能力的空间,但不便于后期维护,特别是人员流动频繁的情况下,问题更是严重。第二种情况是构架师或技术经理在项目初期从开发成本,项目需求等等各个方面做出评估,经过几番取舍,确定项目各个层面使用什么样的技术实现方式,按不同层面进行分工,不同的工作人员负责不同层面的技术实现,这种方式比第一种方式要好得多,适合校大项目的开发,但也存在很多问题。在目前各种实现技术纷争的情况下,没有一种技术是万能的,在做取舍时,难免和某一技术或实现方式依赖性过强,同时限定了技术人员个人技术特长的很好发挥,当由于某些原因要更改实现方式时,经常是牵一发而动全身,造成资源的极大浪费和开发成本的提高。
  
  所以,在构建企业应用时,应该有个好的技术框架,这个框架应该考虑到各种主流的实现技术,我们既可以根据实际情况进行取舍,同时在从一种实现方式变更为另一种实现方式时,又可以进行平滑过度,让多种技术实现并存,发挥技术人员的最大优势,降低项目成本,提高开发效率。
  
   基于SOA的构架
  
  图一
  
  
  
  
  SOA(Service Oriented Architecture),对这一术语我们并不陌生,因为Web service是基于SOA的一种技术,服务的提供者将提供的服务注册到UDDI,其使用者从UDDI上获得服务的描述(WSDL),然后根据服务接口使用服务。Web Service用XML进行消息的传递,通过SOAP绑定在现有的轻量级协议,如HTTP之上,可以透过防火墙,不依赖服务端和客户端具体地实现技术,进行分布式远程调用,它是现有的应用向Internet的延伸。Web service在EAI,B2B,应用到应用的集成等方面体现了巨大的优势,有很多文献介绍Web service,由于这不是本文重点,在此不再赘述。
  
  SOA的优势在于降低了服务的提供者与使用者之间的耦合性,服务的提供者将自己提供的服务注册在中介那里,服务使用者先通过中介查找自己所需服务,使用者获得的是服务接口,但并不知道服务的具体实现,它根据调用接口调用服务,这样即使服务的实现方式发生了变化,只要供使用者调用接口没有改变,服务使用者就不会受到任何影响,这种思想正是我们应该学习和借鉴的地方。那么既然Web service是基于SOA的,我们的企业应用是不是就可以完全构架在Web service上呢?我们并不建议这么做,Web service对于企业内部的应用并不太适合,在一个应用内部使用Web service,系统大量的资源花费在进行XML消息的解析和进行远程调用上,造成系统运转缓慢。当然,从某种意义上讲,EJB也是SOA的一种实现,服务的提供者把服务注册在JNDI上,使用者通过JNDI找到自己想要的服务,通过远程接口使用服务,但EJB的运行需要EJB 容器,开发调试起来不方便,特别对于需求经常变化的系统,进行EJB调试的时间会更久。我们所需要的是一个轻量级的构架,能兼顾各种主流的技术,但又不依赖具体的某个实现方式,当实现方式从一种技术变更为另一种技术时,对于服务的使用者来说几乎没有影响,从而实现客户端和服务器端的松耦合,这样,我们的表现层,业务逻辑层和数据持久层都可以依据实际需求情况与偏好随意选择各种实现方式。  
  
   MiniSOA构架介绍
  M iniSOA设计思想
  MiniSOA是以SOA思想为指导的一个极其轻量级的构架,其主旨是降低服务使用者和提供者之间的耦合度,使现在流行的多种技术能够很好的并存,并充分发挥各自的优势,技术人员能够发挥自己的特长,用自己熟悉的技术来实现业务逻辑,同时应用程序某些层面能够方便的在不同的实现技术之间进行切换,而不会对其他层面造成影响。MiniSOA没有创建一个新的编程模式,没有Web service,EJB那么工业化的庞大,它只是通过XML配置把应用组件装配在一起,通过必要的缓存,提高组件的运行效率,自动管理组件运行时的事务、环境参数等信息,使其能更有效的运行,同时,提供多小组的团队开发的支持,并方便进行单元测试,使开发人员集中精力开发业务逻辑,提高劳动生产率。
  
  图二
  
  
  
  
   MiniSOA概述
  为了降低表现层,业务层和数据持久层等各个层面之间的耦合性,各个层面使用其他层面提供的服务时,不是直接去使用服务对象,而是通过服务中介,查找定位服务接口,通过接口来访问服务,服务提供者可以通过各种方式来实现服务接口,然后把提供的服务注册到服务中介,服务中介是服务使用者和服务提供者之间进行通讯的桥梁,可以在服务中介上做一些其他方面的控制,如事务,安全等。
  表现层作为业务层的使用者,在使用业务层提供的服务时,通过Business Service Manager这个中介来查找和使用服务接口;业务层是表现层的服务提供者,它把通过各种方式实现的服务对象注册到Business Service Manager,供表现层对象使用,同时业务层也是数据持久层服务的使用者,它通过Data Access Object Manager这个中介来使用数据持久层提供的服务;同样数据持久层把对数据库,文件等资源的存取进行封装,把以各种方式提供的服务对象以接口的形式注册到Data Access Object Manager,供业务层对象使用。
  
  图三
  
  
  
  MiniSOA包括业务层和数据持久层两部分组件,业务层的核心组件是ServiceManager, 它是表现层和业务层进行交互的桥梁;数据持久层的核心组件是DaoManager,它是业务层和数据持久层进行交互的桥梁。根据数据模型和业务需求,定义提供的服务接口后,开发人员用自己熟悉的技术开发接口的实现组件,经过单元测试后,把服务接口、实现组件和相应的事务,环境参数等信息配置到dao-conf.xml,service-conf.xml文件,服务使用者就可以通过ServiceManager,DaoManager来查找所需的服务接口,调用服务方法。
  MiniSOA 业务层核心组件简介:
  l  ServiceFacotry:作为表现层调用业务层的Facade,它读取service-factory-conf.xml配置文件,创建用于各个模块的ServiceManager,便于多个开发小组的分工合作。
  l  Service-factory-conf.xml 实例:
  
  
   module1
   module1-service-conf.xml
  
  
   module2
   module2-service-conf.xml
  
  
  通过service-factory-conf.xml配置文件,每个模块可以使用和本模块相关的service配置,适合多个开发小组共同开发,有效避免了资源冲突。
  l  ServiceManager, ServiceManagerBuilder:ServiceManagerBuilder用于读取serivice-conf.xml配置信息,创建每个service对象使用的环境对象ServiceContext,返回用于服务使用者查找具体服务的ServiceManager接口。

本文转自
http://www.builder.com.cn/2007/0901/483704.shtml
全面掌握J2EE系统架构:核心概念与实践 本文还有配套的精品资源,点击获取 简介:J2EE是Oracle公司推出的构建企业级分布式应用程序的平台。本文档集专注于J2EE系统架构,详细介绍了J2EE的核心概念、设计原则和实现方法。核心概念包括多层次架构、容器和组件,例如Servlet、JSP、EJB等。这些概念和组件是实现业务逻辑、数据访问以及视图层处理的关键。学习这些组件能够帮助开发者设计和部署高效、可扩展的J2E... 阅读详情

相关推荐

LeGO-LOAM运行kitti数据集

文章目录1. kitti-lego-loam2. 改动3. 实验结果4. evo轨迹测评 1. kitti-lego-loam 链接:kitti-lego-loam kitti-lego-loam提供了将kitti序列转化成rosbag的代码,在kittibag中. 需要注意下数据文件的存放顺序,以00序列为例: datafolder          |____results          &

Zlp19970106的博客 8705

运用J2EE创建灵活易扩展的企业应用程序探讨

引言随着J2EE的飞速发展,已经有越来越多的企业应用程序以J2EE技术为其构建的基石,J2EE本身并不是产品,它只是制定了一套创建企业应用程序的规范,不同厂商根据J2EE规范,创建了符合J2EE规范的产品,这给予了我们更多的选择创建企业应用的平台。一个典型的J2EE的应用,至少应该包括以下三部分:表现层,业务逻辑层和数据持久层,为了更加容易地创建企业应用程序,许许多多的Framework涌现出来,

岳汐的专栏 907

手把手教你用Arduino IDE玩转ESP32-S3-wroom(附串口调试技巧)

本文详细介绍了如何在Arduino IDE环境下配置和使用ESP32-S3-WROOM模块,包括开发环境搭建、硬件连接、程序烧录及高级调试技巧。通过实战步骤和常见问题解决方案,帮助开发者快速上手这一高性能Wi-Fi/蓝牙双模模组,提升物联网开发效率。

weixin_30487201的博客 294

J2EE是什么(一)

本文简单的介绍了一下J2EE的一些基本知识,下次我们将继续学习J2EE的架构以及API等其他知识。也许我们现在对这些东西都不是很熟悉,但是随着我们的学习深入,这些东西都会理解的。

追梦 5万+

小红书x-mini签名逆向实战:Frida动态Hook与算法还原

在移动App协议分析中,请求签名机制是保障接口安全的核心技术,其本质是客户端对请求参数、时间戳、设备指纹等要素进行加密认证的过程。理解签名原理需掌握Native层加密流程、JNI调用机制及密钥动态派生逻辑。Frida作为主流动态插桩工具,能绕过符号剥离、字符串加密和控制流混淆等反分析手段,在函数执行瞬间捕获寄存器状态、内存数据与调用上下文,实现签名算法的完整还原。该技术广泛应用于合规内容监测、API自动化调用与竞品协议研究等工程场景。本文聚焦小红书x-mini签名这一典型样本,详解从JNI_OnLoad定位

weixin_31264565的博客 461

arXiv订阅进阶玩法:除了邮件,还能用RSS和Python脚本打造你的专属论文追踪器

本文介绍了arXiv订阅的进阶玩法,教你如何通过RSS和Python脚本打造个性化的论文追踪器。突破传统邮件订阅的局限,实现实时更新、精准过滤和自动化管理,提升科研效率。特别适合需要高效追踪最新研究进展的学者和开发者。

weixin_26757925的博客 627

起源之路——JSR?J2EE?JavaEE?

起源之路——JSR?J2EE?JavaEE? 前言 鉴于自己工作了一段时间对各种框架中间件处于知其然不知其所以然的状态中,所以萌生了追寻起源的想法,于是便开始准备编写该系列文章,系统的整理自己对J2EE的理解。若有发现理解不到位,或有不同见解的地方,欢迎各位大神拍砖。 什么是J2EE? J2EE的全称是Java 2 Platform Enterprise Edition,它是由多家公司共同参与并制...

LuoGuoHua_Xin的博客 882

统信UOS丨开机无法进入系统 无法打开控制台访问权限,root账号被锁定(cannot open access to console, the root account is locked)

步骤四:分别打开文件发现Roota下的fstab就是我们要找的文件,打开查看Roota的属性发现其为挂载的磁盘nvme0n1p3。步骤三:按Win+E打开文件管理器在分区中查找/etc/fstab文件,发现Roota和Rootb下都有该文件。步骤二:按键盘Ctrl+Alt+F4,进入终端控制台,如下图所示输入startx回车,进入桌面。步骤一:找到UOS系统安装的U盘,选择U盘启动进入安装界面,如下图所示。步骤七:关机,拔出U盘,启动电脑,OK,问题解决。

Reyn_观极 1万+

J2EE笔记之JavaEE

一、JavaEE产生的背景 为了满足开发多层体系结构的企业级应用的需求,Java公司的创始人Sun公司在早期的J2SE(Java 2 Platform Standard Edition)基础上,针对企业级应用的各种需求,提出了J2EE(Java 2 Plantform Enterprise Edition). 企业级应用程序特点 定义:泛指那些为大型组织部门创建的应用程序。注:并不是特指为企业开发的应用软件。 企业级应用程序一般具有以下特点: 1)分布式:通过局域网运行在一个组织内部,或通过Int

Zxy_zzz的博客 1309

4、基于STM32 NUCLEO - F030R8开发板的嵌入式编程入门

本文详细介绍了如何在STM32 NUCLEO-F030R8开发板上实现LED闪烁功能,作为嵌入式编程的入门实践。内容涵盖开发板组成、跳线设置、项目创建、代码编写与解析、编译运行步骤,以及常见问题解决方法和拓展应用。通过本文学,习者可以掌握嵌入式开发的基本流程,并为后续深入学习打下基础。

m9n0o的博客 85

15、降维算法:原理、实现与应用

本文深入介绍了多种降维算法,包括线性方法如主成分分析(PCA)和线性判别分析(LDA),以及非线性方法如Sammon映射、t分布随机邻域嵌入(t-SNE)和自编码器。文章通过C++库Dlib和Shogun展示了这些算法的具体实现,并结合图像压缩和数据可视化等实际案例,分析了不同算法的适用场景。此外,还探讨了降维算法的选择策略、优化改进方法以及未来发展趋势,为读者提供了全面的技术理解和应用指导。

lemon的博客 116

J2EE的体系架构——J2EE

https://blog.youkuaiyun.com/dandanzmc/article/details/27355565 J2EE的体系架构 J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition),它的核心是一组技术规范与指南,提供基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分布式的应用模型。 J2EE分层 客户层,运行在客户计算机...

try to do 1万+

今日头条面试——iOS开发面试题

layoutIfNeeded和setNeedsLayout的区别。* Pod update和pod install的区别。* 10、autoreleasepool的使用场景。* 如何hook一个对象的方法,而不影响其它对象。* 数组cop后里面的元素会复制一份新的吗。* 介绍项目,主要介绍自己强项一点的地方。* assing可以使用在对象中吗。* isEquel和hash的关系。* 4、谈谈runtime的理解。* 8、谈谈runloop的理解。* copy和strong的区别。

FPGA/MATLAB学习教程/源码/项目合作开发 594

j2ee核心模式 第二版_J2EE的体系架构——J2EE

J2EE的体系架构J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition),它的核心是一组技术规范与指南,提供基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分布式的应用模型。J2EE分层客户层,运行在客户计算机上的组件,用户与系统的接口逻辑,通过http协议的来访问应用服务器。表示层,运行在J2EE服务器上的组件,通过与业务逻辑层互动...

weixin_39621178的博客 395

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

对于JAVAEE的理解

文章目录 一、pandas是什么? 二、使用步骤 1.JAVAEE体系结构 2.JAVAEE层结构 2.JAVAEE体系的优点 总结 一、JAVAEE是什么? JavaEE不是语言而是一种结构,一种标准。JavaEE是为了简化和规范化分布式多层企业应用的开发和部署,简言之就是为简化而做的约定。JavaEE的主要作用就是让企业级应用的开发更容易且规范。 二、对于JAVAEE的理解 1.JAVAEE体系结构 JavaEE应用程序是由组件构成的,也就是说它是基于组件开...

weixin_53097910的博客 920

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

J2EE平台介绍(转)

今天,越来越多的程序设计人员希望借助服务器端技术的快捷、安全以及可靠性,为他们的企业开发分布式的交易应用系统。如果你已经工作在这一领域,你将非常清楚,在今天这样一个电子商务和信息技术飞速发展、并充满需求的世界上,企业应用必须以更...

cuankuangzhong6373的博客 389

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

J2EE

J2EE 是针对 Web Service、业务对象、数据访问和消息报传送的一组规范。这组应用编程接口确定了 Web 应用与驻留它们的服务器之间的通信方式。 J2EE 注重两件事,一是建立标准,使 Web 应用的部署与服务器无关;二是使服务器能控制构件的生命周期和其他资源,以便能够处理扩展、并发、事务处理管理和安全性问题。 表示层 J2EE 客户端可以基于 Web,也可以基于 Ja...

程序员杂谈 8638

JavaEE 简介

1. JavaEE   J2EE 是 Java2 平台企业版 (Java2 Platform Enterprise Edition),它的核心是一组技术规范与指南,提供基于组件的方式来设计、开发、组装和部署企业应用。J2EE 使用多层分布式的应用模型。 2. JavaEE 分层 客户层:运行在客户计算机上的组件,用户和系统的接口逻辑,通过 http 协议的访问来应用服务器。 表示层:运行在 J2EE 服务器上的组件,通过与业务逻辑层互动,将用户需要的数据以适当的方式输出。 业务逻辑层:同样是运行在 J2E

柚咖小窝 5308

J2EE平台介绍

今天,越来越多的程序设计人员希望借助服务器端技术的快捷、安全以及可靠性,为他们的企业开发分布式的交易应用系统。如果你已经工作在这一领域,你将非常清楚,在今天这样一个电子商务和信息技术飞速发展、并充满需求的世界上,企业应用必须以更少的资金、更快的速度和比以往更少的资源来设计、建造和运营。为降低成本、快速实现企业应用的设计和开发,J2EE平台技术为企业应用的设计、开发、集成以及部署提供了一条基于组件的

天高任鸟飞,海阔凭鱼跃 1546

关于J2EE程序员的武器探讨 

  武器者,乃工具也!  “工欲善其事,必先利其器”,80%以上在江湖上混的J2EE程序员,肯定都有一两把武器在手上,也就是精通一两种工具的应用。有20%以下的赤手空拳者,功力一般都非常深厚、可谓高手中的高手,少之又少,有的甚至不出手,尽靠一张嘴,也能吓唬无数敌人,好比“铁掌水上漂”裘千仞及“首席忽悠官”裘千丈。            说到j2ee开发工具,可谓五花八门,各有千秋。每一样都描述

蔡世友-重出江湖 2654

基于J2EE 的企业应用系统 - 工具

基于 J2EE 的企业应用系统 - 工具一览表 应用服务器 -------------------------------- Jetty - http://jetty.mortbay.org/jetty/index.html HTTP 服务器和 Java Serverlet 容器 JOTM - http://www.objectweb.org/jotm/index.html 事务管理服务器 Apa

windgoogle的专栏 1357

基于 J2EE 的企业应用系统 - 工具一览表

基于 J2EE 的企业应用系统 - 工具一览表 应用服务器 -------------------------------- Jetty - http://jetty.mortbay.org/jetty/index.html HTTP 服务器和 Java Serverlet 容器 JOTM - http://www.objectweb.org/jotm/index.html 事务管理服务器 Apa

~憧雨泉~的专栏 1928

J2EE程序开发思路

J2EE程序开发思路一、开发思路    1、MVC分层     首先要将应用程序分层,根据J2EE的MVC框架,哪些部分属于V(iew)层,哪些部分属于C(ontrol)层,哪些部分属于M(odel)层。各层之间采用何种方式进行调用。    2、框架的选择     对于MVC的各层采用何种框架,V层的框架有Strus、JSF等,M层有Hibernate等,C层EJB、Sprin

mikeson1999的专栏 647
上一篇: 发现一个还行的 免费网络硬盘 Fs2You
下一篇: 转:五个必装的手机软件
enjoyjavaee
博客等级 码龄20年 6粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值