SpringBoot:输出程序启动的pid和端口到文件中

Posted 你是小KS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot:输出程序启动的pid和端口到文件中相关的知识,希望对你有一定的参考价值。

当前版本:SpringBoot2.3.12.RELEASEJDK1.8

1.声明

当前内容主要用于本人学习如何将SpringBoot启动后的pid和端口写出到文件中,当前内容主要参考SpringBoot官方文档

2. 基本demo

@SpringBootApplication
public class Application {

	private static String pidPath = "C:\\\\Users\\\\admin\\\\Desktop\\\\appPid.txt";

	private  static String portPath="C:\\\\Users\\\\admin\\\\Desktop\\\\appPort.txt";
	
	public static ApplicationPidFileWriter writePidToFile() {
		ApplicationPidFileWriter pidWriter = new ApplicationPidFileWriter(new File(pidPath));
		return pidWriter;
	}

	
	public static WebServerPortFileWriter writPortToFile() {
		WebServerPortFileWriter portWriter = new WebServerPortFileWriter(new File(portPath));
		return portWriter;
	}

	public static void main(String[] args) {

		// 开启了devtools工具,这个才是真正的地方关闭reload
		SpringApplication application = new SpringApplicationBuilder(Application.class).build(args);
		// 将当前程序启动的pid和端口都写入文件中
		application.addListeners(writePidToFile(),writPortToFile() );
		application.run();
	}
}

这里程序写入为Pid为一个ApplicationPid的类,但是并没有在SpringBoot容器中存在

3. 测试



输出成功,拿到pid之后就可以执行其他的操作了,如果要拿到pid之后保存,需要手动重写该类即可

以上是关于SpringBoot:输出程序启动的pid和端口到文件中的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot启动报错:Error starting ApplicationContext. To display the conditions report re-run

windows Service启动带有管理员权限的进程

Myeclipse 自带Tomcat启动8080端口占用

启动phpstyle Apache的80端口被win7的System PID=4的进程占用的解决方法

Windows10下80端口被PID为4的System占用导致Apache无法启动的分析

我程序全关闭了,可是系统还是提示80端口被占用