J2EE中的设计模式之五

J2EE设计模式实战全集:Java设计模式学习资料 本文还有配套的精品资源,点击获取 简介:Java设计模式在J2EE企业级应用开发中占据核心地位,有助于提升代码的可读性、可维护性,增强系统灵活性和扩展性。本资料集合覆盖了J2EE环境下的设计模式应用,详述了单例、工厂、抽象工厂、策略、观察者、装饰器、适配器、代理、模版方法、建造者等模式,并解释了它们在J2EE中的具体应用和优势。学习这些模式有助于开发者掌握设计原则和最佳实践... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>   c. 要点   § 既然这种模式不涉及到数据访问,就应该用Session Bean来实现。   § 对于用简单接口来实现复杂EJB的子系统来说,是一个理想的选择。   § 这个模式不适用于无流程处理的应用。   § 这个模式可以减少客户端于EJB之间的通信和依赖。   § 所有和EJB有关的交互,都有同一个Session Bean来控制,可以减少客户端对EJB的误用。   § 这个模式可以使支持多类型客户端变得更容易。   § 可以减少网络数据传递。   § 所有的服务器端的实现细节都对客户端隐藏,在改变发生后,客户端不用重新发布。   § 这个模式可以同样看成一个集中处理器来处理所有的安全或日志纪录。   4. Data Access Object   a. 问题   目前为止,你看到的模型都是用来构建可伸缩的,易于维护的J2EE应用。这些模式尽可能的把应用在多个层上来实现。但是,还有一点必须强调:EJB的数据表现。它们包括象EJB这样的数据库语言。如果数据库有改变的话,相应的SQL也必须改变,而EJB也必须随之更新。   这些常见问题就是:访问数据源的代码与EJB结合在一起,这样致使代码很难维护。看以下的代码。   An EJB that has SQL code embedded in it // all imports required // exceptions not handled in the sample code public class UserAccountEJB implements EntityBean { // All EJB methods like ejbCreate, ejbRemove go here // Business methods start here public UserDetails getUserDetails(String userId) { // A simple query for this example String query = "SELECT id, name, phone FROM userdetails WHERE name = " userId; InitialContext ic = new InitialContext(); datasource = (DataSource)ic.lookup("java:comp/env/jdbc/DataSource"); Connection dbConnection = datasource.getConnection(); Statement stmt = dbConnection.createStatement(); ResultSet result = stmt.executeQuery(queryStr); // other processing like creation of UserDetails object result.close(); stmt.close(); dbConnection.close(); return(details); } }   b. 建议的解决方法   为了解决这个问题,从而让你能很方便的修改你的数据访问。建议使用DAO模式。这个模式把数据访问逻辑从EJB中拿出来放入独立的接口中。结果是EJB保留自己的业务逻辑方法,在需要数据的时候,通过DAO来访问数据库。这样的模式,在要求修改数据访问的时候,只要更新DAO的对象就可以了。看以下的代码。   A Data Access Object that encapsulates all data resource access code // All required imports // Exception handling code not listed below for simplicity public class UserAccountDAO { private transient Connection dbConnection = null; public UserAccountDAO() {} public UserDetails getUserDetails(String userId) { // A simple query for this example String query = "SELECT id, name, phone FROM userdetails WHERE name = " userId; InitialContext ic = new InitialContext(); datasource = (DataSource)ic.lookup("java:comp/env/jdbc/DataSource"); Connection dbConnection = datasource.getConnection(); Statement stmt = dbConnection.createStatement(); ResultSet result = stmt.executeQuery(queryStr); // other processing like creation of UserDetails object result.close(); stmt.close(); dbConnection.close(); return(details); } // Other data access / modification methods pertaining to the UserAccountEJB }   现在你有了一个DAO对象,利用这个对象你可以访问数据。再看以下的代码。   An EJB that uses a DAO // all imports required // exceptions not handled in the sample code public class UserAccountEJB implements EntityBean { // All EJB methods like ejbCreate, ejbRemove go here // Business methods start here public UserDetails getUserDetails(String userId) { // other processing as required UserAccountDAO dao = new UserAccountDAO(); UserDetails details = dao.getUserDetails(userId); // other processing as required return(details); } }   任何数据源的修改只要更新DAO就可以解决了。另外,为了支持应用能够支持多个不同的数据源类型,你可以开发多个DAO来实现,并在EJB的发布环境中指定这些数据源类型。在一般情况下,EJB可以通过一个Factory对象来得到DAO。用这种方法实现的应用,可以很容易的改变它的数据源类型。   c. 要点   § 这个模式分离了业务逻辑和数据访问逻辑。   § 这种模式特别适用于BMP。过一段时间,这种方式同样可以移植到CMP中。   § DAOs可以在发布的时候选择数据源类型。   § DAOs增强了应用的可伸缩性,因为数据源改变变得很容易。   § DAOs对数据访问没有任何限制,甚至可以访问XML数据。   § 使用这个模式将导致增加一些额外的对象,并在一定程度上增加应用的复杂性。 J2EE中的设计模式之一 J2EE中的设计模式之二 J2EE中的设计模式之三 J2EE中的设计模式之四 J2EE中的设计模式之五
【vLLM-性能洞察】基于Ascend Profiler的端到端推理瓶颈定位与优化实践 本文详细介绍了如何利用Ascend Profiler对vLLM-Ascend大模型推理服务进行端到端的性能瓶颈定位与优化。通过实战案例,阐述了从数据采集、可视化分析到诊断低效算子、内存管理、计算通信重叠及框架调度等常见瓶颈的全过程,为基于昇腾NPU的AI推理性能调优提供了系统性的方法论和实用工具指南。 阅读详情

相关推荐

Python在Windows环境下驱动乐视三合一摄像头的深度图像处理实践

本文详细介绍了在Windows系统下,使用Python驱动乐视三合一摄像头进行深度图像处理的完整实践流程。从环境配置、驱动安装、OpenNI与OpenCV库的部署,到深度与彩色数据流的读取、可视化、三维点云转换以及背景移除等应用开发,为开发者提供了从零开始掌握深度摄像头编程的实战指南。

gitlab7runner的博客 233

J2EE中的几种常用设计模式

介绍4种常用的设计模式:1.业务委托模式:表示层组件将与业务层服务交互。这样,业务层改变会使表示层也需要改变。业务委托模式可以解决这个问题。业务委托模式的目的就是减少表示层和业务层的耦合,隐藏业务服务的各种复杂实现细节,如查找与访问细节。2.会话门面模式:在服务器方编写服务层组件时,我们要处理复杂的企业Bean,封装业务逻辑和数据。由于提供的接口很复杂,因此会使服务层也更复杂。会话门面设计模式可以...

kouriba 760

【C++PTA】6-1 Point类的运算 (10 分)

定义Point类,有坐标x,y两个私有成员变量;对Point类重载“+”(相加)、“-”(相减)和“==”(相等)运算符,实现对坐标的改变,要求用友元函数和成员函数两种方法实现。对Point类重载<<运算符,以使得代码 Point p; cout<<p<<endl;可以输出该点对象的坐标。 函数接口定义: 实现Point类。 裁判测试程序样例: /* 请在这里填写答案 */ int main(int argc, char const *argv[]) { P

libertye的博客 2369

JavaEE(J2EE)学习篇

一、简要介绍 Java EE,Java 平台企业版(Java Platform Enterprise Edition),之前称为Java 2 Platform, Enterprise Edition (J2EE),2018年3月更名为 Jakarta EE, 是 Sun 公司为企业级应用推出的标准平台,用来开发B/S架构软件,可以说是一个框架或是一种规范。 Java EE是 J2EE的一个新的名...

nann-viiv 的博客 925

泰山派RK3576开发板部署Qwen3-VL-4B多模态模型实战指南:从模型转换到板端推理全流程

本文提供了在泰山派RK3576开发板上部署阿里Qwen3-VL-4B多模态模型的完整实战指南。详细介绍了从环境准备、模型转换(包括视觉模型转换为.rknn格式和语言模型转换为.rkllm格式)、交叉编译到板端推理的全流程,重点讲解了如何利用RK3576的NPU进行硬件加速,实现高效的边缘AI应用。

weixin_30356433的博客 260

通达信大单资金实时监控与播报插件:股票分析的实用利器——大红球

本文介绍了一款专为通达信软件设计的大单资金实时监控与播报插件,该插件以其傻瓜式操作和入门级特性在股民中广受欢迎。插件核心功能包括与通达信版面的无缝联动、大单金额范围的自定义设置、资金流动的可视化展示以及智能声音播报等。其技术架构基于本地网页形式,自带分时图显示功能,数据实时更新且无需L2账户,承诺永久免费升级。插件通过红绿球的大小和颜色直观展示资金规模与买卖方向,顶端全局统计功能提供宏观资金流动分析。尽管插件数据具有较高参考价值,但投资者仍需结合其他因素进行综合判断。插件界面可自适应调整,提供个性化使用体验

guleba的博客 6597

设计模式与J2EE技术

 文章写的不好,请多提意见第一章 设计模式与J2EE技术什么是设计模式简单地说,模式是一个出现在世界上的实物,同时也是一条规则,告诉你应该如何创建一个实物、应该在何时创建。它既是过程,也是实物;既是对当前实物的描述,也是对创建实物的过程的描述。――C.Alexander,《建筑的永恒之道》[i]在软件科学中,模式有很多种,有软件的管理模式,实践证明与传统管理是有区别的,从而是一种新

cx0998的专栏 2130

从零到一:在Ubuntu 20.04上搭建ROS1与PX4无人机开发环境

本文详细指导如何在Ubuntu 20.04系统上搭建完整的ROS1与PX4无人机开发环境。内容涵盖ROS Noetic安装、PX4固件源码编译、MAVROS通信桥接以及QGroundControl地面站的配置,并通过Gazebo仿真完成全链路联调测试,为无人机算法开发与验证提供稳定可靠的基础平台。

weixin_29292431的博客 168

J2EE设计模式分析与实践——从J2EE设计模式总图理解J2EE技术

 第三章 J2EE设计模式上文我们形成了对框架、模式的简单认知。作为背景知识,这一章中主要了解和理解J2EE设计模式,以期获得J2EE设计模式的全貌。由于在SUN公司的网站上有整个J2EE模式的详细的介绍,重复介绍是没有必要的。但是有张图,根据本文的内在要求,是必须要看的。从中我们会进一步漓清框架、模式、具体的技术(如J2EE技术)、设计一个应用之间的关系。(图3)可以这样来理解这

cx0998的专栏 1628

Spring AI 项目实战(五):Spring Boot + AI + DeepSeek + Redis 实现聊天应用上下文记忆功能(附完整源码)

本文介绍了如何基于Spring Boot 3.2、Spring AI 1.0.0-M4、DeepSeek API和Redis构建具备上下文记忆功能的智能聊天应用。项目采用现代化技术栈,包括Java 17、Maven、Lombok等,实现了智能对话、会话管理、异常处理等核心功能。文章详细讲解了环境搭建、配置管理(含Redis和AI服务集成)、核心组件设计(如消息实体、控制器和服务层实现),以及完整的项目结构。该项目提供了美观的Web界面和REST API,支持对话上下文存储(通过Redis实现)和系统监控,可

博客 830

大模型多智能体协作面试题及参考答案

在多智能体系统里,代理定义自身目标或效用函数的过程与系统架构、应用场景紧密相关。从本质上讲,目标是代理行为的导向,而效用函数则是对目标达成程度的量化评估。代理通常依据自身角色、系统全局需求以及与其他代理的交互关系来确立目标。比如在合作型 MAS 中,代理目标可能需要与全局目标对齐,像多个物流机器人协作完成货物配送时,每个机器人的目标会围绕 “高效完成分配任务”“避免路径冲突” 等展开,其效用函数可能涉及任务完成时间、能耗等指标的加权求和。目标定义的方式存在多种类型。

大模型大数据攻城狮的专栏 1023

J2EE中的设计模式

J2EE中的设计模式 什么是Design Patten? 简单来说,Design Patten 就是一个常用的方案。 在我们的开发过程中,经常会遇到一些相同或者相近的问题,每次我们都会去寻找一个新的解决方法,为了节省时间提高效率,我们提供一些能够解决这些常见问题的,被证实可行的方案,构成一个统一的资源库。 一个Design P

iseeiconquer的专栏 1160

【硬件的单元测试 UT 3】PCIe 3.0及信号完整性测试方法

PCIe标准自从推出以来,1代和2代标准已经在PC和Server上逐渐普及,用于满足高速显卡、高速存储设备对于高速数据传输的要求。出于支持更高总线数据吞吐率的目的,PCI-SIG组织在2010年制定了PCIe 3.0,即PCIe 3代的规范,数据速率达到8Gbps。

qq_43416206的博客 1416

理解J2EE设计模式

  第二章 J2EE设计模式在我们形成了对框架、模式的简单认知以后。作为背景知识,这一章中我们主要了解和理解J2EE设计模式,以期获得J2EE设计模式的全貌。由于在SUN公司的网站上[i]有整个J2EE模式的详细的介绍,重复介绍就没什么必要了。但是有张图,根据本文的内在要求,是必须要看的。从中我们会进一步漓清框架、模式、具体的技术(如J2EE技术)、设计一个应用之间的关系。[ii]

cx0998的专栏 2140

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

J2EE Specification level指的是什么和J2EE规范讲解

我们在使用Myeclipse创建web 工程时,经常会遇到一个J2EE Specification level的选项,那这个选项的意义是什么呢? J2EE Specification Level指的是选择使用J2EE的哪个版本的规范。   在网上搜索了一下, 这个和使用的服务器有关, 比如Tomcat4、Weblogic9 以下的版本就应该选J2EE 1.4 。如果是Tomcat5 或

1897

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

J2EE中的设计模式之一

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 296

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SCWCD之路——J2EE设计模式

概述           J2EE目前的设计模式有一类由Sun Java Center管理,其已经定义了15种设计模式,并且在《Core J2EE Patterns》中发表,有兴趣的可以去http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html 查看,考试中考到的设计模式就在其中。         这15...

superzhouych's Blog 219

j2ee的设计模式

j2ee设计模式一共有23种,分为3大类:创建型、结构性、行为型。 创建型(5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型(7种):包装模式、适配器模式、组合模式、代理模式、外观模式、桥接模式、享元模式。 行为型(11种):观察者模式、策略者模式、模板模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 设计模式6

明天,你好的博客 1391

J2EE设计模式分析与实践——J2EE技术新论

 第二章 J2EE技术新论第一节 J2EE技术的整体观                                                           现代软件逐渐流行起来的研究方法首先必从所谓体系结构看起。这种看法颇有道理:从整体着眼可以看得清楚、有居高临下的感觉,不但看得远,而且可以看得清晰。看得清楚意指一个东西,如J2EE,他里面到底有那些东西,有了体系结构图

cx0998的专栏 1466

编程-笔记四:J2EE设计模式-小结

J2EE设计模式是一系列用于解决Java EE应用程序开发中常见问题的设计模式。这些模式专注于如何组织应用程序的架构,以提高其可维护性、可扩展性和可复用性。

qq_45831414的博客 1202

j2ee的23种设计模式

j2ee常用的设计模式; 总共23种,分为三大类:创建型,结构型,行为型 我只记得其中常用的6、7种,分别是: 创建型(工厂、工厂方法、抽象工厂、单例) 结构型(包装、适配器,组合,代理) 行为(观察者,模版,策略) 然后再针对你熟悉的模式谈谈你的理解即可。 Java中的23种设计模式: Factory(工厂模式), Builder(建造模式), Factory Method(工厂

yinjiek的专栏 550

J2EE设计模式之Dao

1.为什么使用Dao       Dao是数据访问层用到的设计模式,那么他就是为了数据访问层而存在的。 数据访问层负责的是很数据库打交道,比如连接数据库,对数据库中的数据进行增删改查的操作,关闭数据库等的操作就是数据访问层的工作。其实即使JDBC,不管是在java中还是以前学习过的ASP.NET在和数据库的操作上其实都是JDBC. 而和数据库打交道的这些东西基本上我们每一个功能都会使用到,也

庞凡 坚定自己踏实走好每一步 1498

设计模式之J2EE模式

J2EE模式简介八种J2EE模式MVC模式(MVC Pattern)业务代表模式(Business Delegate Pattern)组合实体模式(Composite Entity Pattern)数据访问对象模式(Data Access Object Pattern)前端控制器模式(Front Controller Pattern)拦截过滤器模式(InterCepting Filter Pattern)服务定位器模式(Service Locator Pattern)传输对象模式(Transfer Obje

qq_37048054的博客 496
上一篇: Java通讯程序一例
下一篇: J2EE中的设计模式之四
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值