Cobar源码笔记--从加载配置文件到服务器启动

主要阐述Cobar启动初始化工作:包括CobarServer对象的实例化和配置文件的读取

1.程序的入口- - -CobarStartup

在CobarStartup中包含以下main函数

public static void main(String[] args) {
   try {
       // init
       CobarServer server = CobarServer.getInstance();
       server.beforeStart(dateFormat);

       // startup
       server.startup();
   } catch (Throwable e) {
       SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
       LogLog.error(sdf.format(new Date()) + " startup error", e);
       System.exit(-1);
   }
}

从main函数可以获取到以下几点:


1.CobarServer是以单例模式运行的;

private static final CobarServer INSTANCE = new CobarServer();
private CobarServer() {
   this.config = new CobarConfig();
   SystemConfig system = config.getSystem();
   MySQLLexer.setCStyleCommentVersion(system.getParserCommentVersion());
   this.timer = new Timer(NAME + "Timer", true);
   this.initExecutor = ExecutorUtil.create("InitExecutor", system.getInitExecutor());
   this.timerExecutor = ExecutorUtil.create("TimerExecutor", system.getTimerExecutor());
   this.managerExecutor = ExecutorUtil.create("ManagerExecutor", system.getManagerExecutor());
   this.sqlRecorder = new SQLRecorder(system.getSqlRecordCount());
   this.isOnline = new AtomicBoolean(true);
   this.startupTime = TimeUtil.currentTimeMillis();
}

this.config = new CobarConfig() 完成配置文件加载

//- - - CobarConfig() - - - 
ConfigInitializer confInit = new ConfigInitializer();

//- - - ConfigInitializer() - - - 
SchemaLoader schemaLoader = new XMLSchemaLoader();
XMLConfigLoader configLoader = new XMLConfigLoader(schemaLoader);

//org.w3c.dom包完成xml文件解析

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值