1. 程式人生 > >Java配置檔案的使用、載入

Java配置檔案的使用、載入

需求及背景1:在Web|Service中通常會配置自己的服務地址,加入某一個配置檔案中配置了一個地址,那怎麼讀取這個地址。

例如:檔案wsaddress.properites下的服務配置地址:address=http://127.0.0.1:8080/realware/services/AsspFinanceService,500000,2015

業務邏輯中需要得到地址:String address = WSClientHander.getDefaultAddress();

getDefaultAddress()實現:

private static String getDefaultAddress() {
		String str = null;
		if (str != null)
			return DEFAULT_ADDRESS;
		InputStream in = null;
		Properties prop = new Properties();
		try {
			in = WSClientHander.class
					.getResourceAsStream("/wsaddress.properites");
			prop.load(in);
		} catch (Exception e) {
			throw new RuntimeException(WSClientHander.PBCS035, e);
		} finally {
			if (in != null)
				try {
					in.close();
				} catch (IOException e) {
					throw new RuntimeException(WSClientHander.PBCS036, e);
				}
		}
		str = prop.getProperty("address");
		String[] array = str.split(",");
		DEFAULT_ADDRESS = array[0];
		admDivCode = array[1];
		stYear = Integer.parseInt(array[2]);
		if (null == DEFAULT_ADDRESS || DEFAULT_ADDRESS.length() == 0)
			throw new RuntimeException(WSClientHander.PBCS031);
		return DEFAULT_ADDRESS;
	}


需求及背景2:配置檔案裡面有相當多的配置,各種型別的,那麼怎麼去取配置引數值。

配置檔案evoucher.conf

#####################################################################################################
# evoucher.switch  電子憑證庫開關 
# '0'關閉,'1'開啟
#####################################################################################################
#簽名服務開關,非除錯不可關閉
evoucher.switch.SignService=1
#訊息中介軟體開關,非除錯不可關閉
evoucher.switch.MessageService=1
#印章伺服器開關,非除錯不可關閉
evoucher.switch.EStampService=1
#資金憑證雙證書校驗開關
#傳送資金憑證時,需檢驗是否包含兩個不同簽名、簽章證書
evoucher.switch.EStampFund=0
#接收驗證開關
#接收外部憑證時,檢驗憑證對應的簽名、簽章
evoucher.switch.ReceiveVerfy=1
#回撥介面開關
#開啟此介面回撥自動任務將啟動,若業務系統未開發回撥介面,開關應關閉
evoucher.switch.CallBackFuction=1
#業務報文檢查開關
#檢查憑證原文欄位與模板配置的欄位是否一致以及欄位值是否合法,聯調開啟,上線應關閉
evoucher.switch.VoucherFieldCheck=0
#OCX是否彈出錯誤提示框
evoucher.switch.ErrMsgModeFlag=0
#綠色通道同步傳送訊息開關
#開啟開關會接收同步傳送的資料,並向業務系統請求資料,若業務系統沒有此需求或未提供請求服務,開關應關閉
evoucher.switch.requestData=1
#綠色通道非同步傳送訊息開關
#開啟開關會接收非同步傳送的資料,若業務系統沒有此需求,開關應關閉
evoucher.switch.sendData=1
#開啟開關 當有非同步資料傳送過來時會向業務系統通知資料,若業務系統沒有此需求或未提供通知服務,開關應關閉
evoucher.switch.sendData.CallBackFuncton=1

#####################################################################################################
#  evoucher.database 資料庫配置
#####################################################################################################
# 'ORACLE'ORACLE資料庫;'POSTGRES'postgreSql資料庫;'DB2'DB2資料庫;'SYBASE'sybase資料庫
evoucher.model.DataBaseService=ORACLE
#設定資料庫使用者名稱
evoucher.database.user=ww
#設定資料庫密碼
evoucher.database.password=ww
#設定資料庫ip
evoucher.database.ip=192.168.1.241
#設定資料庫埠
evoucher.database.port=1521
#資料庫例項名oracle是例項名、postgres是資料庫名、sybase是資料庫名
evoucher.database.databasename=orcl

#####################################################################################################
# evoucher.service.sign  簽名服務配置 
######################################################################################################
# 'ZK'中科簽名服務;'JD'吉大簽名服務;'GEER'格爾簽名服務;'JNKY'江南科友簽名服務
evoucher.model.SignService=JD
#——————————————————————————————————————————————————
# evoucher.service.sign.zk  中科簽名服務配置 
#——————————————————————————————————————————————————
#中科簽名服務地址
evoucher.service.sign.zk.ip=192.168.1.250
#中科簽名服務埠號
evoucher.service.sign.zk.port=8017
#中科簽名證書
evoucher.service.sign.zk.signCertId=04
#中科數字信封加密證書
evoucher.service.sign.zk.envelopCertId=500000|011:05+500000|001:05+500000|102:05
#——————————————————————————————————————————————————
# evoucher.service.sign.jd  吉大簽名服務配置 
#——————————————————————————————————————————————————
#吉大簽名服務地址,格式:http://地址:埠號/signserver/service/xml   
ServerURL=http://192.168.1.250:8000/signserver/service/xml
#數字信封加密證書 #格式:行政區劃|機構型別:證書ID
AppID=500000|011:koal_env+500000|001:koal_env+500000|102:koal_env
#吉大簽名伺服器必須設定對應的簽名證書
SignCertID=500000:04+500000:koal_sign+500000:01010001
#以下引數為吉大簽名伺服器預設配置,不可修改
#以下引數為吉大簽名伺服器預設配置,不可修改
DigestAlg=SHA1
#des3/scb2
EncAlg=scb2
CertBaseInfo = version;issuerdn;subjectdn
CertExtendInfo =  
CertAlias =
BaseInfo =digestalg;plaindata
SendMsgFormat=0
HashActionPosition=0
PrintLog=false
Compatible=true
#——————————————————————————————————————————————————
# evoucher.service.sign.geer  格爾簽名服務配置 
#——————————————————————————————————————————————————
#格爾簽名服務地址
estamp.sign.geEr.ip=192.168.1.249
#格爾簽名服務埠
estamp.sign.geEr.port=6000
#格爾簽名服務超時時間
estamp.sign.geEr.timeOut=10000
#格爾簽名服務證書
estamp.sign.geEr.certDN=koal_sign
#格爾數字信封加密證書 #格式:行政區劃|機構型別:證書ID
geErAppID=500000|MOF:koal_env+500000|PBC:koal_env+500000|102:koal_env
#——————————————————————————————————————————————————
# evoucher.service.sign.jnky  江南科友簽名 服務配置
#——————————————————————————————————————————————————
#江南科友簽名服務地址
estamp.sign.jnky.ipAddr=192.168.1.135
#江南科友簽名服務埠
estamp.sign.jnky.port=20102
#江南科友簽名服務證書
estamp.sign.jnky.certDN=01010001
#江南科友數字信封加密證書  
estamp.sign.jnky.jnkyAppID=500000|MOF:01010002+500000|PBC:01010002+500000|102:01010002

#####################################################################################################
# evoucher.service.msg  訊息中介軟體服務配置 
######################################################################################################
# 'MQ'MQ訊息中介軟體;'TLQ'TLQ訊息中介軟體
evoucher.model.MessageService=MQ
#——————————————————————————————————————————————————
# evoucher.service.msg.mq  MQ訊息中介軟體服務配置 
#——————————————————————————————————————————————————
#MQ服務地址
evoucher.service.msg.mq.HostName=127.0.0.1
#MQ監聽埠號
evoucher.service.msg.mq.Port=6001
#MQ佇列管理器名稱
evoucher.service.msg.mq.QMgr=wfc1
#MQ伺服器連線通道名稱
evoucher.service.msg.mq.Channel=service
#MQ字符集
#一般Unix、Linux平臺中MQ預設的字符集為819,而Windows平臺為1381
evoucher.service.msg.mq.CCSID=1381

#——————————————————————————————————————————————————
# evoucher.service.msg.tlq  TLQ訊息中介軟體服務配置 
#——————————————————————————————————————————————————
#TLQ服務地址
evoucher.service.msg.tlq.HostName=192.168.1.38
#TLQ的JMS代理埠號
evoucher.service.msg.tlq.JMSPort=10024


#####################################################################################################
# evoucher.service.estamp  印章服務配置 
######################################################################################################
# 'ZK'中科印章服務;'JD'吉大電子印章服務
evoucher.model.EStampService=ZK
#——————————————————————————————————————————————————
# evoucher.service.estamp.zk  中科印章服務配置 
#——————————————————————————————————————————————————
#中科印章服務地址及埠,格式:http://地址:埠號/realware/services/AsspEStampService
evoucher.service.estamp.zk.address=http://192.168.1.42:8001/realware/services/AsspEStampService
#——————————————————————————————————————————————————
# evoucher.service.estamp.jd  吉大印章服務配置 
#——————————————————————————————————————————————————
#吉大印章服務地址及埠,格式:http://地址:埠號
evoucher.service.estamp.jd.address=http://192.168.1.250:8000


#####################################################################################################
# evoucher.service.business.system  業務系統服務配置 
#####################################################################################################
#—————————————————————————————————————————————————————————————————————————
# evoucher.service.callback  回撥業務系統服務地址及埠(voucherArrivedNotify)
#—————————————————————————————————————————————————————————————————————————
#格式:區劃1&憑證型別1$憑證型別2&服務地址2||區劃2&憑證型別1$憑證型別2&服務地址2
#不設定憑證型別表示此區劃全部憑證型別均對應此地址,如:區劃2&&服務地址1|區劃2&&服務地址2 表示此區劃的全部憑證型別
#服務地址格式:http://地址:埠號/realware/service
#evoucher.service.callback.address=500000&&http://192.168.1.179:8090/realware_callback/services/TestService
evoucher.service.callback.address=500000&1102&http://127.0.0.1:8090/realwareCallback_signTest/services/TestService

#—————————————————————————————————————————————————————————————————————————
# evoucher.service.requestData  資料請求、通知服務地址及埠
#—————————————————————————————————————————————————————————————————————————
#服務地址格式:區劃1&http://地址1:埠號1/realware/service1+區劃2&http://地址2:埠號2/realware/service2
evoucher.service.requestData.address=500000&http://192.168.1.200:8080/realware_callback/services/TestService


####################################################################################################
# evoucher.properties  憑證庫執行引數配置
####################################################################################################
#自動解析執行緒間歇時間
#既待解析的接收憑證為空時下一次輪詢等待時間,引數值為整型,精確到毫秒級
evoucher.model.ParsePause=5000
#憑證到達通知執行緒數(回撥介面)
evoucher.service.callback.thread.count=20
#接收憑證訊息執行緒數 ,預設5個
evoucher.download.thread.count=5
#資料請求超時時間配置(單位:毫秒)(開發編寫,其他人員不建議修改)
evoucher.requestData.receiveTimeout=240000
#資料請求訊息失效時間 (單位:毫秒)(開發編寫,其他人員不建議修改)
evoucher.requestData.timeToLive=40000
#接收資料訊息執行緒數(綠色通道非同步資料傳送)
evoucher.sendData.onMessage.concurrentConsumers=1
#原文被篡改錯誤編碼配置(開發編寫,其他人員不建議修改)
evoucher.verfiySignStamp.code=50041,10702005,100100

怎麼從配置檔案中獲取需要的配置

1)匯入配置檔案獲得配置檔案的例項evoucherConfPro  2)通過HashMap儲存好我們需要的配置的Key,寫死的,我們只需要些配置  3)通過getEVConfValue獲得需要的配置

public class PropertiesHander {

	private static final Logger logger = Logger
			.getLogger(PropertiesHander.class);
	private static HashMap<String, String> File_MAPPINGS = new HashMap<String, String>();

	private static final Properties evoucherConfPro = PropertiesHander
			.getProByCustomPath("/", BIZConstant.FILE_NAME_EVOUCHER_CONF);

	static {
		// 註冊類欄位與配置欄位的對映關係
		File_MAPPINGS.put("M_SIGN_SERVICE", "evoucher.model.SignService");
		File_MAPPINGS.put("M_MESSAGE_SERVICE", "evoucher.model.MessageService");
		File_MAPPINGS.put("M_ESTAMP_SERVICE", "evoucher.model.EStampService");
		File_MAPPINGS.put("M_DATABASE_SERVICE",
				"evoucher.model.DataBaseService");
		File_MAPPINGS.put("M_PARSE_PAUSE", "evoucher.model.ParsePause");
		File_MAPPINGS.put("M_CALL_BACK_PARAMETER",
				"evoucher.service.callback.address");
		File_MAPPINGS.put("M_REQUEST_NOTIFY", "evoucher.service.requestData.address"); 
		File_MAPPINGS.put("M_CALL_BACK_THREAD_COUNT", "evoucher.service.callback.thread.count");
		
		File_MAPPINGS.put("S_SIGN_SERVICE", "evoucher.switch.SignService");
		File_MAPPINGS
				.put("S_MESSAGE_SERVICE", "evoucher.switch.MessageService");
		File_MAPPINGS.put("S_ESTAMP_SERVICE", "evoucher.switch.EStampService");
		File_MAPPINGS.put("S_ESTAMP_ALLSIGN", "evoucher.switch.EStampAllSign");
		File_MAPPINGS.put("S_ESTAMP_FUND", "evoucher.switch.EStampFund");
		File_MAPPINGS.put("S_RECEIVE_VIERFY", "evoucher.switch.ReceiveVerfy");
		File_MAPPINGS.put("S_READ_IS_RETURN", "evoucher.switch.IsReturn");
		File_MAPPINGS.put("S_CHECK_IS", "evoucher.switch.VoucherFieldCheck");
		File_MAPPINGS.put("S_CALL_BACK_FUNCTION",
				"evoucher.switch.CallBackFuction");
		File_MAPPINGS.put("S_ERROR_MSG_MODEL_FLAG", "evoucher.switch.ErrMsgModeFlag");
		
		File_MAPPINGS.put("S_RECEIVE_MSG_REQUESTDATA_FLAG", "evoucher.switch.requestData");
		File_MAPPINGS.put("S_RECEIVE_MSG_SENDDATA_FLAG", "evoucher.switch.sendData");
		File_MAPPINGS.put("S_RECEIVE_MSG_SENDDATA_CALLBACK_FLAG", "evoucher.switch.sendData.CallBackFuncton");
	
		/** 憑證庫服務版本號 */
		File_MAPPINGS.put("EVOUCHER_SERVICE_VERSION", "evoucher.service.version");
		//原文篡改編碼
		File_MAPPINGS.put("M_EVOUCHER_VERFIY_SIGN_CODE", "evoucher.verfiySignStamp.code");
		
	}

	public static String getEVConfValue(String key) {
		if(File_MAPPINGS.containsKey(key))
			key=File_MAPPINGS.get(key);
		return evoucherConfPro.getProperty(key);
	}

	/**
	 * 獲取自定義包路徑的配置檔案
	 * 
	 * @param customPath
	 *            自定義路徑
	 * @param fileName
	 *            檔名
	 * @return
	 */
	public static Properties getProByCustomPath(String customPath,
			String fileName) {
		InputStream in = null;
		Properties prop = new Properties();
		try {
			in = PropertiesHander.class.getResourceAsStream(customPath
					+ fileName);
			prop.load(in);
		} catch (Exception e) {
			throw new EVoucherException(ExceptionConstant.EVS601 + "獲取檔案["
					+ fileName + "]失敗", e);
		} finally {
			if (in != null)
				try {
					in.close();
				} catch (IOException e) {
					logger.warn("關閉流失敗", e);
				}
		}
		return prop;
	}

}

第三種情況:對於一些配置檔案可以直接放在程式碼裡面,例如:Boolean型的【可以作為開關】,設定其變數狀態,然後初始化,在業務邏輯程式碼中去取【這樣就實現了配置的作用】如下:

public class ControlParamsHandler {

	/** 簽名伺服器開關-:[true]開啟 [false]關閉 */
	private  static boolean S_SIGN_SERVICE = false;

	/** 簽名伺服器---:[JD]吉大[ZK]中科 */
	private static String M_SIGN_SERVICE = null;

	/** 訊息中介軟體開關-:[true]開啟 [false]關閉 */
	private static boolean S_MESSAGE_SERVICE = false;

	/** 訊息中介軟體服務-:[TLQ] TLQ [MQ]MQ MQ */
	private static String M_MESSAGE_SERVICE = null;

	/** 印章伺服器開關-:[true]開啟 [false]關閉 */
	private static boolean S_ESTAMP_SERVICE = false;

	/** 印章伺服器-:[ZK]中科[JD]吉大 */
	private static String M_ESTAMP_SERVICE = null;

	/** 自動解析執行緒間歇時間 既待解析的接收憑證為空時下一次輪詢等待時間:int型毫秒級 */
	private static int M_PARSE_PAUSE = 0;
	
	/** 資金憑證傳送校驗開關:[OPEN]開啟 [CLOSE]關閉   傳送時需有兩崗不同證書的簽章 */
	private static boolean S_ESTAMP_FUND = false;
	
	/** 接收憑證時驗章、驗籤開關:[OPEN]開啟 [CLOSE]關閉*/
	private static boolean S_RECEIVE_VIERFY = false;

	/**業務報文xml校驗開關:[OPEN]開啟 [CLOSE]關閉*/
	private static boolean S_CHECK_IS = false;

	/** 資料庫選擇-:[ORACLE] oracle [POSTGRES] postgreSql */
	private static String M_DATABASE_SERVICE = null;
	
	/** 回撥介面是否啟用開關:[OPEN]開啟 [CLOSE]關閉  */
	private static boolean S_CALL_BACK_FUNCTION = false;
	
	/** 區劃1&憑證型別1$憑證型別2&服務地址2||區劃2&憑證型別1$憑證型別2&服務地址2 <p>
                     區劃2&&服務地址1||區劃2&&服務地址2 表示此區劃的全部憑證型別  */
	private static String M_CALL_BACK_PARAMETER = null;
	
	/** #OCX是否彈出錯誤提示框 */
	private static boolean S_ERROR_MSG_MODEL_FLAG = false;
	
	/** #綠色通道同步傳送訊息開關 */
	private static boolean S_RECEIVE_MSG_REQUESTDATA_FLAG = false;
	
	/** #綠色通道非同步傳送訊息開關 */
	private static boolean S_RECEIVE_MSG_SENDDATA_FLAG = false;
	
	/** #綠色通道非同步訊息通知開關 */
	private static boolean S_RECEIVE_MSG_SENDDATA_CALLBACK_FLAG = false;
	
	/** 資料請求、通知服務地址及埠 */
	private static String M_REQUEST_NOTIFY = null;
	
	/** 憑證到達通知執行緒數  */
	private static int M_CALL_BACK_THREAD_COUNT = 1;
	
	/** 原文被篡改錯誤編碼配置 */
	private static String M_EVOUCHER_VERFIY_SIGN_CODE = null;

	static {
		initParameters();
		CacheRegister.registerCache();
	}
	
	public static void initParameters() {
		final Logger logger = Logger.getLogger(ControlParamsHandler.class);
		// 初始化控制引數
		
		String fieldName = null;// 欄位名
		Object fieldValue = null;// 欄位值
		try {
			Field[] fields = ControlParamsHandler.class.getDeclaredFields();
			int a = 1;
			for (Field field : fields) {
				fieldName = field.getName();
				fieldValue = PropertiesHander.getEVConfValue(fieldName);
				if (fieldName == null || (fieldName.indexOf("S_") == -1
						&& fieldName.indexOf("M_") == -1))
					continue;
				
				// 取出空格
				fieldValue = fieldValue == null ? null : fieldValue.toString()
						.trim();
				if (StringUtils.isEmpty((String) fieldValue)) {
					logger.error(ExceptionConstant.EVS001 + ",引數[" + fieldName
							+ "]為空");
					throw new EVoucherException(ExceptionConstant.EVS001
							+ ",引數[" + fieldName + "]為空");
				}

				// 列印控制引數
				logger.info("控制引數(" + a + ")[" + fieldName + "]:[" + fieldValue
						+ "]");
				// 處理int型別
				if (field.getType() == int.class) {
					fieldValue = Integer.parseInt((String) fieldValue);
				}
				// 處理boolean型別
				if (field.getType() == boolean.class) {
					if (BIZConstant.EV_CONF_SWITCH_OPEN.equals(fieldValue)) {
						fieldValue = true;
					} else {
						fieldValue = false;
					}
				}
				// 賦值
				field.set(ControlParamsHandler.class, fieldValue);
				a++;
			}
		} catch (EVoucherException ex) {
			logger.error(ex);
			throw ex;
		} catch (Exception ex) {
			logger.error(ExceptionConstant.EVS001 + ",引數[" + fieldName + "]異常",
					ex);
			throw new EVoucherException(ExceptionConstant.EVS001 + ",引數["
					+ fieldName + "]異常", ex);
		}
		// 列印第三方伺服器狀態
		ServiceTestManager.print3rdPartyService();
	}
	
	public static boolean isS_RECEIVE_VIERFY() {
		return S_RECEIVE_VIERFY;
	}


	public static void setS_RECEIVE_VIERFY(boolean s_receive_vierfy) {
		S_RECEIVE_VIERFY = s_receive_vierfy;
	}


	public static boolean isS_SIGN_SERVICE() {
		return S_SIGN_SERVICE;
	}


	public static String getM_SIGN_SERVICE() {
		return M_SIGN_SERVICE;
	}


	public static boolean isS_MESSAGE_SERVICE() {
		return S_MESSAGE_SERVICE;
	}


	public static String getM_MESSAGE_SERVICE() {
		return M_MESSAGE_SERVICE;
	}


	public static boolean isS_ESTAMP_SERVICE() {
		return S_ESTAMP_SERVICE;
	}


	public static String getM_ESTAMP_SERVICE() {
		return M_ESTAMP_SERVICE;
	}


	public static int getM_PARSE_PAUSE() {
		return M_PARSE_PAUSE;
	}
	
	public static boolean isS_ESTAMP_FUND() {
		return S_ESTAMP_FUND;
	}

	public static String getM_DATABASE_SERVICE() {
		return M_DATABASE_SERVICE;
	}

	public static void setM_DATABASE_SERVICE(String mDATABASESERVICE) {
		M_DATABASE_SERVICE = mDATABASESERVICE;
	}

	public static boolean isS_CALL_BACK_FUNCTION() {
		return S_CALL_BACK_FUNCTION;
	}

	public static void setS_CALL_BACK_FUNCTION(boolean sCALLBACKFUNCTION) {
		S_CALL_BACK_FUNCTION = sCALLBACKFUNCTION;
	}

	public static String getM_CALL_BACK_PARAMETER() {
		return M_CALL_BACK_PARAMETER;
	}

	public static void setM_CALL_BACK_PARAMETER(String mCALLBACKPARAMETER) {
		M_CALL_BACK_PARAMETER = mCALLBACKPARAMETER;
	}

	public static boolean isS_CHECK_IS() {
		return S_CHECK_IS;
	}

	public static void setS_CHECK_IS(boolean sCHECKIS) {
		S_CHECK_IS = sCHECKIS;
	}

	public static boolean isS_ERROR_MSG_MODEL_FLAG() {
		return S_ERROR_MSG_MODEL_FLAG;
	}

	public static void setS_ERROR_MSG_MODEL_FLAG(boolean sERRORMSGMODELFLAG) {
		S_ERROR_MSG_MODEL_FLAG = sERRORMSGMODELFLAG;
	}

	public static boolean isS_RECEIVE_MSG_REQUESTDATA_FLAG() {
		return S_RECEIVE_MSG_REQUESTDATA_FLAG;
	}

	public static void setS_RECEIVE_MSG_REQUESTDATA_FLAG(
			boolean sRECEIVEMSGREQUESTDATAFLAG) {
		S_RECEIVE_MSG_REQUESTDATA_FLAG = sRECEIVEMSGREQUESTDATAFLAG;
	}

	public static boolean isS_RECEIVE_MSG_SENDDATA_FLAG() {
		return S_RECEIVE_MSG_SENDDATA_FLAG;
	}

	public static void setS_RECEIVE_MSG_SENDDATA_FLAG(
			boolean sRECEIVEMSGSENDDATAFLAG) {
		S_RECEIVE_MSG_SENDDATA_FLAG = sRECEIVEMSGSENDDATAFLAG;
	}

	public static String getM_REQUEST_NOTIFY() {
		return M_REQUEST_NOTIFY;
	}

	public static int getM_CALL_BACK_THREAD_COUNT() {
		return M_CALL_BACK_THREAD_COUNT;
	}

	public static void setM_CALL_BACK_THREAD_COUNT(int mCALLBACKTHREADCOUNT) {
		M_CALL_BACK_THREAD_COUNT = mCALLBACKTHREADCOUNT;
	}

	public static String getM_EVOUCHER_VERFIY_SIGN_CODE() {
		return M_EVOUCHER_VERFIY_SIGN_CODE;
	}

	public static void setM_EVOUCHER_VERFIY_SIGN_CODE(String mEVOUCHERVERFIYSIGNCODE) {
		M_EVOUCHER_VERFIY_SIGN_CODE = mEVOUCHERVERFIYSIGNCODE;
	}

	public static boolean isS_RECEIVE_MSG_SENDDATA_CALLBACK_FLAG() {
		return S_RECEIVE_MSG_SENDDATA_CALLBACK_FLAG;
	}

	public static void setS_RECEIVE_MSG_SENDDATA_CALLBACK_FLAG(
			boolean sRECEIVEMSGSENDDATACALLBACKFLAG) {
		S_RECEIVE_MSG_SENDDATA_CALLBACK_FLAG = sRECEIVEMSGSENDDATACALLBACKFLAG;
	}

}