osgi对于java的模块化提供了极大的好处,但是对于习惯了利用java进行编程的同志,在利用全局的数据时,感觉到要跨越多个bundle,不是很方便,但是在spring的编程中,利用常量进行bean的属性设置和在代码中应用,对于保持一个参量赋值的唯一性非常必要。
于是想到利用osgi中的service,来共享一个常量设置的思路:
1、首先在一个公用的bundle中,定义一个常量的存储类:
public class GlobalConstantsImpl implements GlobalConstants {
private static int SRC_DATA_SINA_T_DETAIL ;
private static int SRC_DATA_AIGAOGAO_S_DAY;
private static int SRC_DATA_AIGAOGAO_S_INDEX;
public GlobalConstantsImpl(int sRCDATASINATDETAIL, int sRCDATAAIGAOGAOSDAY,
int sRCDATAAIGAOGAOSINDEX) {
super();
SRC_DATA_SINA_T_DETAIL = sRCDATASINATDETAIL;
SRC_DATA_AIGAOGAO_S_DAY = sRCDATAAIGAOGAOSDAY;
SRC_DATA_AIGAOGAO_S_INDEX = sRCDATAAIGAOGAOSINDEX;
}
/* (non-Javadoc)
* @see org.tkxing.stock.utils.gconst.GlobalConstants#getSRC_DATA_SINA_T_DETAIL()
*/
public int getSRC_DATA_SINA_T_DETAIL() {
return SRC_DATA_SINA_T_DETAIL;
}
/* (non-Javadoc)
* @see org.tkxing.stock.utils.gconst.GlobalConstants#getSRC_DATA_AIGAOGAO_S_DAY()
*/
public int getSRC_DATA_AIGAOGAO_S_DAY() {
return SRC_DATA_AIGAOGAO_S_DAY;
}
/* (non-Javadoc)
* @see org.tkxing.stock.utils.gconst.GlobalConstants#getSRC_DATA_AIGAOGAO_S_INDEX()
*/
public int getSRC_DATA_AIGAOGAO_S_INDEX() {
return SRC_DATA_AIGAOGAO_S_INDEX;
}
这个类中,一属性是私有的,不能够在其他的地方赋值;二各个属性没有set方法,所以能够保证各个属性的值,只能够通过配置注入。
2、然后再这个bundle中,注册一个service。
<osgi:service ref ="globalConstant" interface ="org.tkxing.stock.utils.gconst.GlobalConstants"/>
3、在其他应用这些常量的地方,首先引用注册的service,然后通过spring的spel引用,就可以了:
<osgi:reference id="globalConstants" interface ="org.tkxing.stock.utils.gconst.GlobalConstants"/>
在spring的配置文件中,如下引用
#globalConstants.SRC_DATA_SINA_T_DETAIL
分享到:
相关推荐
OSGi Service Platform Service Compendium 比较适合当参考书,写的很详细。。
OSGi 入门级教程OSGi 入门级教程OSGi 入门级教程OSGi 入门级教程中文版
利用R-OSGi实现分布式OSGi应用 本文通过介绍传统 OSGi 应用程序及 R-OSGi 的实现方式入手,阐述了 R-OSGi 对于 OSGi 规范的实现方式。然后通过一个简单的功能实现由浅入深地讲述传统 OSGi 和 R-OSGi 上的两种不同...
OSGi Service Platform 4.1
OSGi Service Platform Core Specification, 比较适合当参考书,写的很详细。。
OSGi的开发和部署方式,方便部署和演示
Osgi技术在Eclipse中的实现 简单用代码解释了过程
利用felix和struts2实现osgi web
osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍
1、自己开发的OSGi Web Console,适用于实现了OSGi规范的Equinox、Felix等...2、展示了如何把OSGi框架作为一个组件嵌入到现有的未基于OSGi开发的Web应用当中,在Web应用中可获取OSGi中的Service以增加应用的灵活性。
In a service oriented architecture, applications consist of several cooperating services. These networks of services are often dynamic in nature, so managing dependencies is something the developer ...
This book is about OSGi’s role in enterprise Java and how the Spring Dynamic Modules for OSGi (Spring-DM) fulfills this role. I first learned about OSGi when the Eclipse IDE started using it in its ...
OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文OSGi 中文版 中文 OSGi中文
在felix2.0.1扩展Hibernate,使之工作于OSGI框架之中。
代码实现了用户登录验证功能,其中包括OSGi的传统实现方式和DS的实现方式。
Spring OSGI 快速入门中文教程
《 OSGi实战》是学习OSGi的全面指导,利用与架构和开发人员相关的示例清楚地讲解OSGi概念,同时探讨了很多实践场景和技术,阐述了开发人员有多需要OSGi,怎么将OSGi嵌入其他容器中,将遗留系统移入OSGi的最佳实践,...
想多前沿技术了解的朋友,一定要看哦.
JAVA OSGI 进阶源码 中文文档. 对OSGI入门,DS 处理练习很不错的。
Spring-OSGI 1.0 M3 中文手册