У меня есть приложение с весенней загрузкой, где я запускаю Tomcat.
Я хочу закрыть приложение, когда оно завершит свою работу.
Я слежу за этим blog , чтобы выключить его.
Он печатает журнал Spring Container is destroyed!
, но мне все равно нужно нажать кнопку остановки в IntelliJ, чтобы остановить его.
Вот @SpringBootApplication
:
@SpringBootApplication
public class MyApplication implements CommandLineRunner {
@Autowired
MyService myService;
@Autowired
private ApplicationContext context;
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
myService.getResult();
System.out.println("-------> 1");
((ConfigurableApplicationContext)context).close();
}
}
Журналы:
2019-11-06 00:51:57.018 INFO 26820 --- [ main] c.m.f.MyApplication : Starting MyApplication on FTYUIN000171 with PID 26820
2019-11-06 00:51:57.026 INFO 26820 --- [ main] c.m.f.MyApplication : No active profile set, falling back to default profiles: default
2019-11-06 00:52:00.423 INFO 26820 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.hateoas.config.HateoasConfiguration' of type [org.springframework.hateoas.config.HateoasConfiguration$$EnhancerBySpringCGLIB$$74fff90c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-06 00:52:02.282 INFO 26820 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9090 (http)
2019-11-06 00:52:02.358 INFO 26820 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-11-06 00:52:02.359 INFO 26820 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.22]
2019-11-06 00:52:02.796 INFO 26820 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-11-06 00:52:02.796 INFO 26820 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 5304 ms
2019-11-06 00:52:08.093 INFO 26820 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-11-06 00:52:09.999 INFO 26820 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9090 (http) with context path ''
2019-11-06 00:52:10.010 INFO 26820 --- [ main] c.m.f.MyApplication : Started MyApplication in 14.216 seconds (JVM running for 42.337)
-------> 1
2019-11-06 00:53:31.833 INFO 26820 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
Spring Container is destroyed!
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.uuid</groupId>
<artifactId>java-uuid-generator</artifactId>
<version>3.1.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.9</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.1.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.1.0</version>
</dependency>
</dependencies>