Application.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package com.uas.report;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.PrintStream;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import org.springframework.beans.BeansException;
  9. import org.springframework.boot.autoconfigure.SpringBootApplication;
  10. import org.springframework.boot.builder.SpringApplicationBuilder;
  11. import org.springframework.boot.web.support.SpringBootServletInitializer;
  12. import org.springframework.context.ApplicationContext;
  13. import org.springframework.context.ApplicationContextAware;
  14. import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  15. import com.uas.report.util.ContextUtils;
  16. import com.uas.report.util.ReportUtils;
  17. /**
  18. * 不使用spring boot内嵌的容器,部署在自定义Tomcat下时的程序入口
  19. *
  20. * @author sunyj
  21. * @since 2017年1月11日 下午5:18:41
  22. */
  23. @SpringBootApplication(scanBasePackages = "com.uas.report")
  24. @EnableWebMvc
  25. public class Application extends SpringBootServletInitializer implements ApplicationContextAware {
  26. private static Logger logger = LoggerFactory.getLogger(Application.class);
  27. @Override
  28. protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  29. try {
  30. File logFile = new File("logs/log.log");
  31. if (!logFile.getParentFile().exists()) {
  32. logFile.getParentFile().mkdir();
  33. }
  34. System.setErr(new PrintStream(new FileOutputStream(logFile, true)));
  35. } catch (FileNotFoundException e) {
  36. logger.error("", e);
  37. }
  38. // 程序入口
  39. return builder.sources(Application.class);
  40. }
  41. @Override
  42. public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  43. // 注册spring上下文对象
  44. ContextUtils.setApplicationContext(applicationContext);
  45. logger.info("ApplicationContext registed");
  46. // 开启定时任务
  47. ReportUtils.startTask();
  48. }
  49. }