BaseSPIManager组件介绍

简介: bboss 项目下载地址: https://sourceforge.net/project/showfiles.php?group_id=238653 在bboss aop框架中,我们将业务组件配置到xml文件中(关于配置的语法请参考《bboss aop配置语法》),比如manager-provider.xml,然后就可以通过组件BaseSPIManager来获取这些业务组件的实例。

bboss 项目下载地址:

https://sourceforge.net/project/showfiles.php?group_id=238653

bboss aop框架中,我们将业务组件配置到xml文件中(关于配置的语法请参考《bboss aop配置语法》),比如manager-provider.xml,然后就可以通过组件BaseSPIManager来获取这些业务组件的实例。除了对业务组件进行管理,bboss aop框架还提供了系统全局属性配置的功能,这些属性同样可以通过BaseSPIManager提供的相关接口来获取。下面分三个部分说明上述的功能。

BaseSPIManager介绍

BaseSPIManager管理业务组件

BaseSPIManager管理系统配置属性

BaseSPIManager介绍

包路径说明

BaseSPIManager的完整包路径如下:

com.chinacreator.spi.BaseSPIManager

BaseSPIManager管理业务组件

管理业务组件的两个静态接口

l         接口1  获取idmanagerid的管理服务接口实例(如果有多个provider,则获取第一个provider实现)

public static Object getProvider(String providerManagerType) throws SPIException

l         接口2  获取idmanagerid的管理服务接口实例,参数二对应多个provider中相应的provider 类型标识

public static Object getProvider(String providerManagerType, String sourceType) throws SPIException

 

方法1和方法2的区别是:方法1的返回值和抛出的异常以默认(或者多个中的第一个provider)的provider的相应方法的返回值和异常为准,方法2返回值和抛出的异常以指定类型的provider的相应方法的返回值和异常为准。方法1和方法2的事务管理机制是一致和相同的。

这两个接口返回的对象类型为java.lang.Object,调用程序可以将该对象转型为相应的组件接口类型。

举例说明如下:

配置文件

<manager id="managerid "  //管理服务id

singlable="true" //单列模式

 >

<provider type="provider_a"  //provider实现a

           class="test.A" />

<provider type="provider_b" //provider实现b

           class="test.B" />

<transactions>

<method name="handle" txtype="REQUIRED_TRANSACTION"/>

</transactions>

</manager>

获取实例

AI a = (AI)BaseSPIManager.getProvider("managerid");

a将是test.A的代理实例。因为默认获取第一个provider实现。

 

AI a = (AI)BaseSPIManager.getProvider("managerid",”provider_b”);

A将是test.B的代理实例。

 

目录
相关文章
|
存储 开发框架 前端开发
从零开始学习前端开发
前端开发是现代互联网应用程序开发中不可或缺的一部分。本文将带您从零开始学习前端开发,包括HTML、CSS和JavaScript等核心技术,以及常见的开发框架和工具。
|
6月前
|
人工智能 自然语言处理 安全
学不会编程也能写测试?AI让测试更平权
在传统的软件开发体系中,测试常被划分为“技术型测试”(如自动化、性能、安全)和“业务型测试”(如功能验证、用户体验)。前者掌握技术话语权,后者则更多依赖经验和流程规范。然而,随着大语言模型(LLM)等AI技术的迅猛发展,这一固有格局正被悄然打破:
215 10
|
6月前
|
存储 运维 数据库
StarWind Virtual SAN (VSAN) 8.0.0 - 软件 SAN 解决方案
StarWind Virtual SAN (VSAN) 8.0.0 - 软件 SAN 解决方案
166 5
StarWind Virtual SAN (VSAN) 8.0.0 - 软件 SAN 解决方案
|
9月前
|
机器学习/深度学习 运维 数据可视化
《生成对抗网络:网络安全态势感知可视化的新引擎》
在数字化时代,网络安全至关重要。网络安全态势感知可视化通过直观展示网络状况,帮助快速发现威胁。生成对抗网络(GANs)作为前沿AI技术,正为这一领域带来变革。GANs由生成器和判别器组成,通过对抗训练生成逼真数据,用于数据增强、异常检测、威胁情报合成及动态场景模拟。尽管面临数据隐私、模型稳定性和可解释性等挑战,GANs的应用前景广阔,有望大幅提升网络安全水平。
424 22
|
8月前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
网络安全视角:从地域到账号的阿里云日志审计实践
193 0
|
11月前
|
消息中间件 网络协议 RocketMQ
RocketMQ Controller 模式 始终更新成本机ip
ontrollerAddr=192.168.24.241:8878 但是日志输出Update controller leader address to 127.0.0.1:8878。导致访问失败
231 3
|
监控 IDE 开发工具
「Mac畅玩鸿蒙与硬件5」鸿蒙开发环境配置篇5 - 熟悉DevEco Studio界面
本篇将详细介绍 DevEco Studio 的界面布局和主要功能模块,帮助开发者熟悉开发环境,提高开发效率。通过了解各个界面区域,开发者可以顺利找到所需工具,流畅开展鸿蒙应用开发。
453 2
「Mac畅玩鸿蒙与硬件5」鸿蒙开发环境配置篇5 - 熟悉DevEco Studio界面
|
存储 缓存 Kubernetes
在K8S中,集群节点宕机,可能由哪些原因造成?
在K8S中,集群节点宕机,可能由哪些原因造成?
|
存储 人工智能 计算机视觉
AI学习教程:AI(Adobe lliustrator)快速入门
AI学习教程:AI(Adobe lliustrator)快速入门
970 0
AI学习教程:AI(Adobe lliustrator)快速入门