在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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值