本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7584245
建立时间:2006年5月29日




[Apache(jakarta)]Hivmind使用指南(一)
软件技术

lhwork 发表于 2006/7/12 14:45:39

Hivmind使用指南(一) 一、service的定义 1、概述 在hivemind中,一个service是一个简单的实现特定接口的对象,你可以提供此接口的核心实现,使用者可以通过实现此接口来覆盖你的实现。模块的定义可以包含<service-poit>元素来定义服务,一个模块可以包含任意多的服务。 2、创建模式 Service有四种创建模式:primitive(主要的)、singleton(单例的)、threaded(线程的)和pooled(池化的)。在primitive和singleton模式中,每一个服务最终只会生成一个实例。在threaded和pooled模式中,同时可能有多个实例,但是每个线程只会有一个实例。各个模式的定义如下: Primitive:服务在第一次参考时被构造 Singleton:服务在第一此调用接口的方法时被构造 Threaded:第一次调用接口的方法时构造,并绑定到当前线程 Pooled:同Threaded,但服务的实现被储存在池中 Hivemind使用代理模式来创建实例,除了primitive创建模式。代理类实现了服务接口,按需要构造实际的实现类。 3、定义方法 一个服务包含一个实现类和任意多的拦截类,拦截类可以实现日志、安全、事务定义和性能观测等功能。一般一个服务代理将首先创建,当代理类的方法被调用时,实际的服务实现类被构造和配置,所有的拦截类被创建。 定义如下: <service-point id="MyService" interface="com.myco.MyServiceInterface">   <create-instance class="com.myco.impl.MyServiceImpl"/>   <interceptor service-id="hivemind.LoggingInterceptor"/> </service-point> 属性定义如下表所示 属性 类别 必需 描叙 id 字符串 是 服务扩展点的简单id,全写的id通过前边加上模块id来获得 interface 类名 否 此服务扩展点支持的接口的名字,如果没有定义,则默认为服务id,全协的名称通过前边加上模块的报名来获得 parameters-schema-id 字符串 否 用来参考模块中定义的schema,schema定义了此服务需要用到的参数,当服是通过ServiceImplementationFactory或者 ServiceInterceptorFactory.类定义时。 parameters-occurs unbounded | 0..1 | 1 | 1..n | none 否 参数元素允许的数量: unbounded: 无穷0..1: 可选1 (default) :必须1..n: 至少一个none:不允许 服务定义中可以包含 <create-instance>、 <interceptor>、<invoke-factory> 、<parameters-schema>定义。 4、服务的创建 服务可以通过两种方式来构造实例创建和实现工厂,实例创建表现为<create-instance>元素,实现工厂表现为<invoke-factory>元素。 <create-instance> 直接实例化一个接口的实现类 属性 类别 必需 描叙 class 类名 是 用来实例化的类名,此类中的属性不需要额外配置 model primitive | singleton | threaded | pooled 否 指定构造模式,singleton是默认模式 <invoke-factory> 通过另一个服务来实例化一个接口的实现类,它包含一个service-id属性,定义了一个实现ServiceImplementationFactory接口的服务。通过此方式创建的service将通过service的接口类型自动绑定各个服务。 属性 类别 必需 描叙 service-id 字符串 否 工厂服务的id,可以是统一模块中的简单id,也可以是全写的id。如果没有确定,默认为hivemind.BuilderFactory服务 model primitive | singleton | threaded | pooled 否 指定构造模式,singleton是默认模式   5、拦截器的定义 拦截器使用<interceptor>来表示,属性service-id标识一个服务拦截器工厂服务,工厂服务实现了ServiceInterceptorFactory接口。 属性 类别 必需 描叙 service-id 字符串 是 服务的id before 字符串 否 一个服务id的列表,这些服务需要在此服务后执行 after 字符串 否 一个服务id的列表,这些服务需要在此服务前执行 name 字符串 否 用来排序,没有指定的话,默认为service-id 服务id的列表以逗号分隔每个服务。 6、工厂参数的定义      <invoke-factory>可能需要取得一些参数来配置需要的信息,所以定制工厂的参数是必要的。Schema用于统一定义数据的表现形式,针对参数的定义有个具体的parameters-schema来使用,parameters-schema不象shema那样可以单独定义,它只能出现在<service-point>定义中,而且跟parameters-schema-id的定义互斥,两者只能出现一个。


阅读全文(1685) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144756915 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号