首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

在osgi中利用service跟spel实现全局常量

2012-09-09 
在osgi中利用service和spel实现全局常量? osgi对于java的模块化提供了极大的好处,但是对于习惯了利用java

在osgi中利用service和spel实现全局常量

? 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

?

热点排行