Run As:Spring Boot App和Run As:Java Application之间有区别吗?

时间:2016-05-27 18:28:13

标签: spring spring-boot spring-tool-suite spring-ide

如果我使用Spring Tool Suite或Spring IDE插件进行eclipse,我可以通过2种方式运行spring boot app:

Run As:
    Spring Boot App
    Java Application

enter image description here

这两个命令都可以工作,并且可以在没有问题的情况下启动我的Spring启动应用程序。但是,我想了解两个不同过程之间的区别。它们之间确实存在差异,还是它们的工作方式相同?

1 个答案:

答案 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()方法终止与启动相关的进程。这是一种更具侵略性的方法来杀死相关进程,并且可能不允许应用程序正确清理内容,例如干净地关闭数据库连接。

所以...总之,你得到两件事:

  1. 启动conf编辑器中的一些额外的启动特定UI
  2. 引导1.3及更高版本的优雅进程终止。