package cn.org.hentai.jtt1078.app; import cn.org.hentai.jtt1078.publisher.PublishManager; import cn.org.hentai.jtt1078.server.SessionManager; import cn.org.hentai.jtt1078.util.Configs; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.Resource; @Component public class ServerApp { @Resource private VideoServer videoServer; @Resource private HttpServer httpServer; @Resource private TalkServer talkServer; @PostConstruct public void start() throws Exception { // 初始化配置、管理器(可提取成 ConfigService 由 Spring 管理) Configs.init("/app.properties"); PublishManager.init(); SessionManager.init(); videoServer.start(); httpServer.start(); talkServer.start(); // 注册优雅关闭(也可用 Spring 的 DisposableBean、@PreDestroy) sun.misc.Signal.handle(new sun.misc.Signal("TERM"), signal -> { videoServer.shutdown(); httpServer.shutdown(); }); } }