提问者:小点点

Run As: Spring Boot应用程序和Run As:Java应用程序之间有区别吗?


如果我使用Spring工具套件或SpringIDE插件进行eclipse,我可以通过2种方式运行Spring Boot应用程序:

Run As:
    Spring Boot App
    Java Application

这两个命令都可以正常工作,并且可以毫无问题地启动我的Spring Boot应用程序。但是,我想了解这两个不同进程之间的区别。它们之间实际上有区别还是它们的工作方式相同?


共1个答案

匿名用户

正如有人已经在评论中暗示的那样,有几个区别。本文解释了您在启动配置编辑器中获得一些额外的“铃铛和口哨”。

第二个可能也是更重要的区别是,自Boot 1.3以来,Spring Boot App提供了一个JMX bean,允许STS很好地要求关闭应用程序。当您从IDE终止应用程序时,例如通过单击停止/重新启动按钮,STS使用此JMX bean要求关闭引导应用程序。这是“运行为启动应用程序”启动器中实现的功能,因此如果您使用“运行为Java应用程序”,它不会生效。

Java启动器简单地使用Java的Process()方法终止与启动相关的进程。这是一种更“激进”的方式来杀死相关进程,并且可能不允许应用程序正确清理内容,例如干净地关闭数据库连接。

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

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