听说你还不懂 Java 的服务定位器模式(Service Locator Pattern)?(上)

简介: 听说你还不懂 Java 的服务定位器模式(Service Locator Pattern)?

1 概述


当你想使用 JNDI 查询定位各种服务时,便可考虑该模式。

由于为某个服务查找 JNDI 的代价很高,服务定位器模式(后文简称为 SLP)充分利用了缓存技术。在首次请求某服务时,服务定位器在 JNDI 中查找服务,并缓存该服务对象。当再次请求相同服务时,服务定位器会在它的缓存中查找,便可极大提高应用程序的性能。



2 构成


服务(Service)

实际处理请求的服务。对该服务的引用可在 JNDI 服务器中查到

Context / 初始的 Context

JNDI Context 带有对要查找的服务的引用

服务定位器(Service Locator)

服务定位器是通过 JNDI 查找和缓存服务来获取服务的单点接触

缓存(Cache)

缓存存储服务的引用,以便复用它们

客户端(Client)

Client 是通过 ServiceLocator 调用服务的对象。


3 示例


UML 图设计

image.png


我们将创建 ServiceLocator、InitialContext、Cache、Service 作为表示实体的各种对象。Service1 和 Service2 表示实体服务。


ServiceLocatorPatternDemo,我们的演示类在这里是作为一个客户端,将使用 ServiceLocator 来演示服务定位器设计模式。


服务定位器模式的 UML 图



3.1 服务接口Service


image.png


3.2 实体服务

image.png

image.png

前两主要表现接口之间的多态性,指定行为方式。


3.3 为 JNDI 查询创建 InitialContext


工厂模式的应用,通过类名确定要实例化的对象



image.png




目录
相关文章
|
11月前
|
JSON Java 数据格式
java调用服务报错400
java调用服务报错400
266 6
java调用服务报错400
|
11月前
|
JSON Java 数据格式
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
595 6
|
存储 数据采集 搜索推荐
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
本篇文章探讨了 Java 大数据在智慧文旅景区中的创新应用,重点分析了如何通过数据采集、情感分析与可视化等技术,挖掘游客情感需求,进而优化景区服务。文章结合实际案例,展示了 Java 在数据处理与智能推荐等方面的强大能力,为文旅行业的智慧化升级提供了可行路径。
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
Java 大视界 -- Java 大数据在智能家居能源消耗模式分析与节能策略制定中的应用(198)
简介:本文探讨Java大数据技术在智能家居能源消耗分析与节能策略中的应用。通过数据采集、存储与智能分析,构建能耗模型,挖掘用电模式,制定设备调度策略,实现节能目标。结合实际案例,展示Java大数据在智能家居节能中的关键作用。
|
分布式计算 搜索推荐 算法
Java 大视界 -- Java 大数据在智慧养老服务需求分析与个性化服务匹配中的应用(186)
本篇文章探讨了Java大数据技术在智慧养老服务需求分析与个性化服务匹配中的应用。通过整合老年人健康数据与行为数据,结合机器学习与推荐算法,实现对老年人健康风险的预测及个性化服务推荐,提升养老服务的智能化与精准化水平,助力智慧养老高质量发展。
|
Java 应用服务中间件 Docker
java-web部署模式概述
本文总结了现代 Web 开发中 Spring Boot HTTP 接口服务的常见部署模式,包括 Servlet 与 Reactive 模型、内置与外置容器、物理机 / 容器 / 云环境部署及单体与微服务架构,帮助开发者根据实际场景选择合适的方案。
755 25
|
Arthas 监控 Java
Java死锁 如何定位?如何避免Java死锁?(图解+秒懂+史上最全)
Java死锁 如何定位?如何避免Java死锁?(图解+秒懂+史上最全)
Java死锁 如何定位?如何避免Java死锁?(图解+秒懂+史上最全)
|
SQL 缓存 Java
面试官:说说你对Java服务的调优都有哪些?
面试官:说说你对Java服务的调优都有哪些?
225 0
面试官:说说你对Java服务的调优都有哪些?
|
11月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
526 1