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的代理实例。

 

目录
相关文章
|
4月前
|
监控 数据可视化 索引
四个组件配置说明
官方文档!!!!!!!!! 1.在Filebeat中配置info.log日志文件的路径,以及要将日志发送到Logstash的地址和端口,可以在Filebeat的配置文件 filebeat.yml中添加如下配置: Copy filebeat.inputs: - type: log paths: - /usr/logs/info.log fields: log_type: info output.logstash: hosts: ["localhost:5044"] 这里使用filebeat.inputs指定要监控的日志文件路径
52 5
|
7月前
在组件上使用
在组件上使用
|
7月前
|
JavaScript
组件上使用 v-for
组件上使用 v-for
|
7月前
|
资源调度 JavaScript 前端开发
2020你应该有一个自己的组件
2020你应该有一个自己的组件
68 0
|
7月前
|
JavaScript 前端开发
Vue3中的组件:组件的定义、组件的属性和事件、组件的Slots和动态组件
Vue3中的组件:组件的定义、组件的属性和事件、组件的Slots和动态组件
145 0
|
设计模式 JavaScript 前端开发
可复用性的组件详解
可复用性的组件详解
225 0
可复用性的组件详解
|
JavaScript API
Vue子组件与父组件(看了就会)
Vue子组件与父组件(看了就会)
352 1
|
负载均衡 网络协议 Java
SprongCloud组件
SprongCloud组件
|
架构师 定位技术 iOS开发
关于组件,你真的了解么?
最近经常听到“组件化开发”,那架构设计里,组件到底如何定义、设计和应用呢,今天我们一起来聊聊。
关于组件,你真的了解么?