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

 

目录
相关文章
|
13天前
|
JavaScript
组件上使用 v-for
组件上使用 v-for
|
13天前
在组件上使用
在组件上使用
|
3月前
|
资源调度 JavaScript 前端开发
2020你应该有一个自己的组件
2020你应该有一个自己的组件
40 0
|
4月前
|
JavaScript 前端开发
Vue3中的组件:组件的定义、组件的属性和事件、组件的Slots和动态组件
Vue3中的组件:组件的定义、组件的属性和事件、组件的Slots和动态组件
55 0
|
缓存 JavaScript
【Vue五分钟】 五分钟让你了解什么是动态组件和内置组件
在vue中,有很多的组件可以挂载同一个挂载点上面,要在同一个挂载的点上的多个组件之间可以实现动态的切换渲染,我们可以通过内置组件component的is属性动态的绑定组件,然后我们就可以根据is的值来决定哪一个组件要被渲染,非常的方便。
【Vue五分钟】 五分钟让你了解什么是动态组件和内置组件
|
负载均衡 网络协议 Java
SprongCloud组件
SprongCloud组件
|
设计模式 JavaScript 前端开发
可复用性的组件详解
可复用性的组件详解
181 0
可复用性的组件详解
vue2:子组件给父组件传递数据(传统方法+自定义事件方法
vue2:子组件给父组件传递数据(传统方法+自定义事件方法
137 0
|
架构师 定位技术 iOS开发
关于组件,你真的了解么?
最近经常听到“组件化开发”,那架构设计里,组件到底如何定义、设计和应用呢,今天我们一起来聊聊。
关于组件,你真的了解么?

热门文章

最新文章