package com.mortals.xhx.daemon.applicationservice;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Component;

import com.mortals.framework.springcloud.service.IApplicationService;

/**
 * 应用级服务，在应用启动、停止过程中调用
 * 
 * 缺陷：类加载完成后就调用，会由于某些组件还未初始化而导致服务异常，
 * 比如Kafka的连接以及订阅初始化比较靠后，在服务启动过程中就调用操作kafka相关API，将导致失败
 * 比如开启Socket监听端口，可能端口都接收到连接请求了，但数据库连接还未初始化完成，导致请求处理失败
 * 比如定时任务，任务执行时，相关缓存还未初始化，导致处理失败
 * 
 * 应用场景：
 * 1、无依赖其它模块或框架的数据初始化等操作
 * @author	zxfei
 * @date	2020年7月15日
 */
@Component
public class DemoStartService implements IApplicationService {
    
    private static Log logger = LogFactory.getLog(DemoStartService.class);

    @Override
    public void start() {
        logger.info("开始服务..[配置已加载完成，但部分框架还未初始化，比如：Kafka]");
    }

    @Override
    public void stop() {
        logger.info("停止服务..");
    }

}
