123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- package com.its.op;
- import com.its.op.config.AppUtils;
- import com.its.op.config.ProcessConfig;
- import com.its.op.xnettcp.client.VdsCommClientService;
- import com.its.op.xnetudp.CenterCommUdpServer;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.DisposableBean;
- import org.springframework.beans.factory.InitializingBean;
- import org.springframework.boot.Banner;
- import org.springframework.boot.CommandLineRunner;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.builder.SpringApplicationBuilder;
- import org.springframework.boot.context.ApplicationPidFileWriter;
- import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
- import org.springframework.context.ApplicationListener;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.EnableAspectJAutoProxy;
- import org.springframework.context.event.ContextClosedEvent;
- import org.springframework.scheduling.annotation.EnableAsync;
- import org.springframework.web.bind.annotation.CrossOrigin;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- @Slf4j
- //@EnableJpaAuditing // JPA Auditing 활성화
- @EnableAspectJAutoProxy
- @EnableAsync
- @Configuration
- @SpringBootApplication
- /*@ComponentScan(basePackages = {
- "com.its.api.config",
- "com.its.api.its.repository.*",
- "com.its.api.bis.repository",
- "com.its.api.utis.repository",
- "com.its.api.*"
- })*/
- //@ComponentScan("com.its")
- //@MapperScan({"com.its.dao.bis", "com.its.dao.its", "com.its.dao.utis"})
- @CrossOrigin("*")
- public class ItsOpServerApplication extends SpringBootServletInitializer implements CommandLineRunner, ApplicationListener<ContextClosedEvent>, InitializingBean, DisposableBean {
- private static final String applicationName = "its-op-server";
- @Override
- protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
- return builder.sources(ItsOpServerApplication.class);
- }
- public static void main(String[] args) {
- //System.setProperty("log4j.skipJansi", String.valueOf(true));
- SpringApplication application = new SpringApplicationBuilder()
- .sources(ItsOpServerApplication.class)
- .listeners(new ApplicationPidFileWriter("./conf/" + applicationName + ".pid"))
- .build();
- application.setBannerMode(Banner.Mode.OFF);
- application.run(args);
- }
- @Override
- public void run(String... args) throws Exception {
- ProcessConfig processConfig = (ProcessConfig) AppUtils.getBean(ProcessConfig.class);
- log.info("");
- log.info("");
- log.info("************************************************************************************");
- log.info("** **");
- log.info("** Intelligent Traffic System **");
- log.info("** Intelligent Traffic System Common Operating Server. **");
- log.info("** **");
- log.info("** [ver.1.0] **");
- log.info("** process: {}", processConfig.getId());
- log.info("** startup: {}", processConfig.getBootingDateTime());
- log.info("************************************************************************************");
- CenterCommUdpServer centerCommUdpServer = (CenterCommUdpServer)AppUtils.getBean(CenterCommUdpServer.class);
- centerCommUdpServer.run();
- VdsCommClientService vdsCommClientService = (VdsCommClientService)AppUtils.getBean(VdsCommClientService.class);
- vdsCommClientService.run();
- // Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
- // private volatile boolean hasShutdown = false;
- // private AtomicInteger shutdownTimes = new AtomicInteger(0);
- //
- // @Override
- // public void run() {
- // synchronized (this) {
- // log.info("shutdown hook was invoked, " + this.shutdownTimes.incrementAndGet());
- // if (!this.hasShutdown) {
- // this.hasShutdown = true;
- // long beginTime = System.currentTimeMillis();
- // long consumingTimeTotal = System.currentTimeMillis() - beginTime;
- // log.info("shutdown hook over, consuming time total(ms): " + consumingTimeTotal);
- // }
- // }
- // }
- // }, "ShutdownHook"));
- }
- @Override
- public void onApplicationEvent(ContextClosedEvent contextClosedEvent) {
- // shutdown.....
- SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- log.error("Application Terminated: {}, {}", sdfDate.format(new Date()), contextClosedEvent.toString());
- }
- @Override
- public void destroy() throws Exception {
- }
- @Override
- public void afterPropertiesSet() throws Exception {
- }
- }
|