package com.trafree.banking.server.hardcore.init;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.TimeZone;
import org.apache.log4j.PropertyConfigurator;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.IDataSourceProvider;
import com.jfinal.plugin.druid.DruidPlugin;
import com.trafree.banking.server.hardcore.model.Agent;
import com.trafree.banking.server.hardcore.model.BankingAgentInfo;
import com.trafree.banking.server.hardcore.model.BankingAgentSourceInfo;
import com.trafree.banking.server.hardcore.model.BankingApplication;
import com.trafree.banking.server.hardcore.model.BankingBackToArticle;
import com.trafree.banking.server.hardcore.model.BankingBackToArticleTrack;
import com.trafree.banking.server.hardcore.model.BankingBankBusi;
import com.trafree.banking.server.hardcore.model.BankingBankBusiPufainfo;
import com.trafree.banking.server.hardcore.model.BankingBankBusiZhongbang;
import com.trafree.banking.server.hardcore.model.BankingBusiness;
import com.trafree.banking.server.hardcore.model.BankingCtripBase;
import com.trafree.banking.server.hardcore.model.BankingDaokoudaiTask;
import com.trafree.banking.server.hardcore.model.BankingExportAccount;
import com.trafree.banking.server.hardcore.model.BankingExportLog;
import com.trafree.banking.server.hardcore.model.BankingIndex;
import com.trafree.banking.server.hardcore.model.BankingOtaAgentRatio;
import com.trafree.banking.server.hardcore.model.BankingOtaOrder;
import com.trafree.banking.server.hardcore.model.BankingPufaWht;
import com.trafree.banking.server.hardcore.model.BankingRateTrack;
import com.trafree.banking.server.hardcore.model.BankingRefundAgentExt;
import com.trafree.banking.server.hardcore.model.BankingRepay;
import com.trafree.banking.server.hardcore.model.BankingTickorderinfo;
import com.trafree.banking.server.hardcore.model.DigBankingFlow;
import com.trafree.banking.server.hardcore.model.Orderinfo;
import com.trafree.banking.server.hardcore.model.Pnrinfo;
import com.trafree.banking.server.hardcore.model.Segmentinfo;
import com.trafree.banking.server.hardcore.model.Tickorderinfo;
import com.trafree.banking.server.hardcore.model.Travelerinfo;
import com.trafree.banking.server.hardcore.param.GlobalStaticVar;
import com.trafree.banking.server.hardcore.util.BankingServerUtil;
import com.trafree.banking.server.hardcore.util.Loggers;
import com.trafree.cfg.env.config.TrafreeConfigManager;
import com.trafree.cfg.env.data.TrafreeAppTypeEnum;
public class InitProxy {
/**
* 初始化总调度
*/
public boolean initAll(){
TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));//设置时区
InitProxy initProxy = new InitProxy();
if(initProxy.initLog()){
Loggers.businessLog.info("初始化日志完成!");
}else{
System.out.println("初始化日志失败!");
return false;
}
/**********************************************************************************/
if(initProxy.initAppPro()){
Loggers.businessLog.info("初始化配置文件完成!");
}else{
Loggers.exceptionLog.info("初始化配置文件失败!");
return false;
}
/**********************************************************************************/
if(initProxy.initDao()){
Loggers.businessLog.info("初始化数据库完成!");
}else{
Loggers.exceptionLog.info("初始化数据库失败!");
return false;
}
/**********************************************************************************/
if(initProxy.initDubbo()){
Loggers.businessLog.info("初始化dubbo完成!");
}else{
Loggers.exceptionLog.info("初始化dubbo失败!");
return false;
}
/**********************************************************************************/
return true;
}
/**
* 初始化日志<p>
* 日志使用log4j,配置文件为程序主目录下的log4j.properties。<br>
* 程序日志分为运行日志和异常日志。<br>
*
* @return
*/
public boolean initLog() {
Properties props = new Properties();
InputStream in = InitProxy.class.getClassLoader()
.getResourceAsStream("log4j.properties");
try {
props.load(in);
PropertyConfigurator.configure(props);
Loggers.businessLog.info("日志初始化成功.");
} catch (IOException e) {
return false;
} finally {
try {
if(in != null) in.close();
} catch (IOException e) {
return false;
} finally {
in = null;
}
}
return true;
}
/**
* 初始化系统APP配置
* @return
*/
public boolean initAppPro(){
Properties props = new Properties();
InputStream in = InitProxy.class.getClassLoader()
.getResourceAsStream("app.properties");
try {
props.load(in);
GlobalStaticVar.mode = props.getProperty("mode");//服务启动模式
Loggers.businessLog.info("启用配置:mode = " + GlobalStaticVar.mode);
GlobalStaticVar.apiBankZb = props.getProperty("apiBankZb");//API请求地址
Loggers.businessLog.info("启用配置:apiBankZb = " + GlobalStaticVar.apiBankZb);
GlobalStaticVar.dbip_bankingota = props.getProperty("dbip_bankingota");//数据IP
Loggers.businessLog.info("启用配置:DB.dbip_bankingota = " + GlobalStaticVar.dbip_bankingota);
GlobalStaticVar.dbpath_bankingota = props.getProperty("dbpath_bankingota");//数据库地址
Loggers.businessLog.info("启用配置:DB.dbpath_bankingota = " + GlobalStaticVar.dbpath_bankingota);
GlobalStaticVar.dbname_bankingota = props.getProperty("dbname_bankingota");//数据库用户
Loggers.businessLog.info("启用配置:DB.dbname_bankingota = " + GlobalStaticVar.dbname_bankingota);
GlobalStaticVar.dbpass_bankingota = props.getProperty("dbpass_bankingota");//数据库用户密码
Loggers.businessLog.info("启用配置:DB.dbpass_bankingota = " + GlobalStaticVar.dbpass_bankingota);
GlobalStaticVar.dbip_fly4free = props.getProperty("dbip_fly4free");//数据IP
Loggers.businessLog.info("启用配置:DB.dbip_fly4free = " + GlobalStaticVar.dbip_fly4free);
GlobalStaticVar.dbpath_fly4free = props.getProperty("dbpath_fly4free");//数据库地址
Loggers.businessLog.info("启用配置:DB.dbpath_fly4free = " + GlobalStaticVar.dbpath_fly4free);
GlobalStaticVar.dbname_fly4free = props.getProperty("dbname_fly4free");//数据库用户
Loggers.businessLog.info("启用配置:DB.dbname_fly4free = " + GlobalStaticVar.dbname_fly4free);
GlobalStaticVar.dbpass_fly4free = props.getProperty("dbpass_fly4free");//数据库用户密码
Loggers.businessLog.info("启用配置:DB.dbpass_fly4free = " + GlobalStaticVar.dbpass_fly4free);
GlobalStaticVar.APIBANKZB_UPIMG_BASEPATH = props.getProperty("APIBANKZB_UPIMG_BASEPATH");
Loggers.businessLog.info("启用配置:APIBANKZB_UPIMG_BASEPATH = " + GlobalStaticVar.APIBANKZB_UPIMG_BASEPATH);
GlobalStaticVar.APIBANKZB_UPIMG_ACCOUNT = props.getProperty("APIBANKZB_UPIMG_ACCOUNT");
Loggers.businessLog.info("启用配置:APIBANKZB_UPIMG_ACCOUNT = " + GlobalStaticVar.APIBANKZB_UPIMG_ACCOUNT);
GlobalStaticVar.APIBANKZB_UPIMG_PWD = props.getProperty("APIBANKZB_UPIMG_PWD");
Loggers.businessLog.info("启用配置:APIBANKZB_UPIMG_PWD = " + GlobalStaticVar.APIBANKZB_UPIMG_PWD);
GlobalStaticVar.APIBANKZB_UPIMG_SERVERIP = props.getProperty("APIBANKZB_UPIMG_SERVERIP");
Loggers.businessLog.info("启用配置:APIBANKZB_UPIMG_SERVERIP = " + GlobalStaticVar.APIBANKZB_UPIMG_SERVERIP);
String APIBANKZB_UPIMG_PORT = props.getProperty("APIBANKZB_UPIMG_PORT");
GlobalStaticVar.APIBANKZB_UPIMG_PORT = BankingServerUtil.strToInteger(APIBANKZB_UPIMG_PORT);
Loggers.businessLog.info("启用配置:APIBANKZB_UPIMG_PORT = " + GlobalStaticVar.APIBANKZB_UPIMG_PORT);
GlobalStaticVar.APIBANKZB_H5_KEY_3DES = props.getProperty("APIBANKZB_H5_KEY_3DES");
Loggers.businessLog.info("启用配置:APIBANKZB_H5_KEY_3DES = " + GlobalStaticVar.APIBANKZB_H5_KEY_3DES);
GlobalStaticVar.APIBANKZB_H5_BASEURL = props.getProperty("APIBANKZB_H5_BASEURL");
Loggers.businessLog.info("启用配置:APIBANKZB_H5_BASEURL = " + GlobalStaticVar.APIBANKZB_H5_BASEURL);
//初始化浦发相关配置参数
GlobalStaticVar.PUFA_URL = props.getProperty("PUFA_URL");
Loggers.businessLog.info("启用配置:PUFA_URL = " + GlobalStaticVar.PUFA_URL);
GlobalStaticVar.PUFA_ACCMNG_URL = props.getProperty("PUFA_ACCMNG_URL");
Loggers.businessLog.info("启用配置:PUFA_ACCMNG_URL = " + GlobalStaticVar.PUFA_ACCMNG_URL);
GlobalStaticVar.PUFA_3DESKEY = props.getProperty("PUFA_3DESKEY");
Loggers.businessLog.info("启用配置:PUFA_3DESKEY = " + GlobalStaticVar.PUFA_3DESKEY);
GlobalStaticVar.PUFA_MD5KEY = props.getProperty("PUFA_MD5KEY");
Loggers.businessLog.info("启用配置:PUFA_MD5KEY = " + GlobalStaticVar.PUFA_MD5KEY);
GlobalStaticVar.PUFA_DOWNLOAD_PATH = props.getProperty("PUFA_DOWNLOAD_PATH");
Loggers.businessLog.info("启用配置:PUFA_DOWNLOAD_PATH = " + GlobalStaticVar.PUFA_DOWNLOAD_PATH);
} catch (Exception e) {
Loggers.exceptionLog.error("初始化系统APP配置,失败:" + e.getMessage(),e);
return false;
}finally {
try {
if(in != null) in.close();
} catch (IOException e) {
return false;
} finally {
in = null;
}
}
return true;
}
/**
* 初始化数据库连接池
* @return
*/
public boolean initDao(){
try {
initBankingotaDb();
initFly4freeDb();
return true;
} catch (Exception e) {
Loggers.exceptionLog.error("初始化数据库错误:" + e.getMessage(),e);
return false;
}
}
/**
* 初始化政策数据库表
*/
public boolean initBankingotaDb(){
DruidPlugin druidPlugin = initDBPlugin(GlobalStaticVar.dbip_bankingota, GlobalStaticVar.dbpath_bankingota, GlobalStaticVar.dbname_bankingota, GlobalStaticVar.dbpass_bankingota);
druidPlugin.start();
ActiveRecordPlugin arp = new ActiveRecordPlugin(GlobalStaticVar.bankingota_control,druidPlugin);
arp.addMapping("banking_agent_info", "id", BankingAgentInfo.class);
arp.addMapping("banking_agent_source_info", "id", BankingAgentSourceInfo.class);
arp.addMapping("banking_ctrip_base", "id", BankingCtripBase.class);
arp.addMapping("banking_daokoudai_task", "id", BankingDaokoudaiTask.class);
arp.addMapping("banking_export_account", "id", BankingExportAccount.class);
arp.addMapping("banking_export_log", "id", BankingExportLog.class);
arp.addMapping("banking_ota_agent_ratio", "id", BankingOtaAgentRatio.class);
arp.addMapping("banking_refund_agent_ext", "id", BankingRefundAgentExt.class);
arp.addMapping("banking_repay", "id", BankingRepay.class);
arp.addMapping("banking_tickorderinfo", "id", BankingTickorderinfo.class);
arp.addMapping("banking_application", "id", BankingApplication.class);
arp.addMapping("banking_bank_busi", "id", BankingBankBusi.class);
arp.addMapping("banking_bank_busi_pufainfo", "id", BankingBankBusiPufainfo.class);
arp.addMapping("banking_bank_busi_zhongbang", "id", BankingBankBusiZhongbang.class);
arp.addMapping("dig_banking_flow", "id", DigBankingFlow.class);
arp.addMapping("banking_back_to_article", "id", BankingBackToArticle.class);
arp.addMapping("banking_back_to_article_track", "id", BankingBackToArticleTrack.class);
arp.addMapping("banking_pufa_wht", "id", BankingPufaWht.class);
arp.addMapping("banking_rate_track", "id", BankingRateTrack.class);
arp.addMapping("banking_ota_order", "id", BankingOtaOrder.class);
arp.addMapping("banking_index", "id", BankingIndex.class);
arp.start();
return true;
}
/**
* 初始化政策数据库表
*/
public boolean initFly4freeDb(){
DruidPlugin druidPlugin = initDBPlugin(GlobalStaticVar.dbip_fly4free, GlobalStaticVar.dbpath_fly4free, GlobalStaticVar.dbname_fly4free, GlobalStaticVar.dbpass_fly4free);
druidPlugin.start();
ActiveRecordPlugin arp = new ActiveRecordPlugin(GlobalStaticVar.fly4free_control,druidPlugin);
arp.addMapping("orderinfo", "orderId", Orderinfo.class);
arp.addMapping("tickorderinfo", "tickOrderId", Tickorderinfo.class);
arp.addMapping("pnrinfo", "id", Pnrinfo.class);
arp.addMapping("segmentinfo", "id", Segmentinfo.class);
arp.addMapping("travelerinfo", "id", Travelerinfo.class);
arp.addMapping("agent", "account", Agent.class);
arp.addMapping("banking_business", "id", BankingBusiness.class);
arp.start();
return true;
}
/**
* 初始化dubbo服务客户端方法
*/
public boolean initDubbo() {
try {
TrafreeConfigManager.me.init(TrafreeAppTypeEnum.B2BAPI);
// TrafreeOrderClientManager.init();
// TrafreeRemarkClientManager.init();
return true;
} catch (Exception e) {
Loggers.exceptionLog.error("初始化DUBBO服务客户端错误:" + e.getMessage(), e);
return false;
}
}
public static synchronized DruidPlugin initDBPlugin(String dbip,
String dbpath, String dbname, String dbpass) {
DruidPlugin druidPlugin = new DruidPlugin("jdbc:mysql://" +
dbip+
"/" +
dbpath +
"?characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull",
dbname,
dbpass);//for release
return druidPlugin;
}
public static synchronized ActiveRecordPlugin initActiveRecordPlugin(
IDataSourceProvider dataSourceProvider, boolean showSql) {
ActiveRecordPlugin arp = new ActiveRecordPlugin(dataSourceProvider);
arp.setShowSql(showSql);
//这里注册model
// arp.addMapping("tickordercredit", XE_Tickordercredit.class);
return arp;
}
}
原文:https://www.cnblogs.com/kokimiki/p/13365314.html