最简单的方法是一旦
SpringApplication.run()返回就发送消息。直到Tomcat(或任何其他受支持的嵌入式容器)完全启动并在配置的端口上侦听后,该方法才会返回。但是,尽管这很简单,但这并不是一个很好的方法,因为它将主要配置类和应用程序的某些运行时逻辑混合在一起。
相反,您可以使用
SpringApplicationRunListener。
finished()在Tomcat完全启动并在配置的端口上侦听之前,将不会调用该命令。
创建一个名为
src/main/resources/meta-INF/spring.factories列出您的运行侦听器的文件。例如:
org.springframework.boot.SpringApplicationRunListener=com.example.MyRunListener
使用所需的构造函数创建并实现您的运行侦听器
SpringApplicationRunListener。例如:
package com.example;import org.springframework.boot.SpringApplication;import org.springframework.boot.SpringApplicationRunListener;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.core.env.ConfigurableEnvironment;public class MyRunListener implements SpringApplicationRunListener { public MyRunListener(SpringApplication application, String[] args) { } @Override public void starting() { } @Override public void environmentPrepared(ConfigurableEnvironment environment) { } @Override public void contextPrepared(ConfigurableApplicationContext context) { } @Override public void contextLoaded(ConfigurableApplicationContext context) { } @Override public void started(ConfigurableApplicationContext context) { // Send message; Tomcat is running and listening on the configured port(s) } @Override public void running(ConfigurableApplicationContext context) { } @Override public void failed(ConfigurableApplicationContext context, Throwable exception) { }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)