如果我使用Spring Tool Suite或Spring IDE插件进行eclipse,我可以通过2种方式运行spring boot app:
Run As:
Spring Boot App
Java Application
这两个命令都可以工作,并且可以在没有问题的情况下启动我的Spring启动应用程序。但是,我想了解两个不同过程之间的区别。它们之间确实存在差异,还是它们的工作方式相同?
答案 0 :(得分:7)
有一些差异,正如某人已经在评论中暗示的那样。 This article解释说你在启动配置编辑器中得到了一些额外的“铃声和口哨”。
第二个也许更重要的区别是,自Boot 1.3开始,Spring Boot App提供了一个JMX bean,允许STS很好地关闭应用程序。当您从IDE终止应用程序时,例如通过单击停止/重新启动按钮,STS使用此JMX bean来请求启动应用程序关闭。这是在“Run As Boot App”启动程序中实现的功能,因此如果您使用“Run As Java App”,它将不会生效。
Java启动程序只使用Java的Process.destroy()方法终止与启动相关的进程。这是一种更具侵略性的方法来杀死相关进程,并且可能不允许应用程序正确清理内容,例如干净地关闭数据库连接。
所以...总之,你得到两件事: