逝者如斯夫

静而思之
数据加载中……

Apache Commons Discovery 与面向服务编程

使用Apache Commons 的 Discovery 工具包可以实现接口和实现的分离,包括JAR SPI规范的简单实现。结合面向接口的编程方法,可以实现一个简单的面向服务的调用方式。

// 初始化
ClassLoaders loaders  =
ClassLoaders.getAppLoaders(serviceClass, serviceClass.getClass(), 
false );
DiscoverClass discover 
=   new  DiscoverClass(loaders);

//  使用newInstance方式直接产生接口实现的实例
implInstance  =  (PublicService) discover.newInstance(serviceClass, defaultImpl);

//  也可以使用find的方式返回对应的实现类
implClass  =  discover.find(serviceClass, configFile, defaultImpl);

上面的用法中,接口和实现类的映射关系在一个properties配置文件中定义,格式是:

XXXable = XXXimpl

也可以在classpath中的jar的META-INF/services中定义,格式是:

META - INF / services / xxxable(文件) 文件内容为 xxximpl

以下事完整程序中使用了cglib的 net.sf.cglib.proxy.Enhancer 对返回的实现类进行了增强,可以实现一个简单的面向方面的程序结构:


代码示例

posted on 2007-03-29 20:05 ideame 阅读(3771) 评论(2)  编辑  收藏

评论

# re: Apache Commons Discovery 与面向服务编程  回复  更多评论   

请问:怎样开始使用我的blog我的文字怎能上我的blog?help me please?
2007-04-02 10:21 | xiaofan

# re: Apache Commons Discovery 与面向服务编程  回复  更多评论   

@xiaofan
注册:http://www.blogjava.net/requireregister.aspx
管理:http://www.manageblog.net/
2007-04-02 11:53 | ideame

只有注册用户登录后才能发表评论。


网站导航: