我只是想知道我启动一个Spring启动应用程序与之间有什么区别:
mvn spring-boot:run
Run Code Online (Sandbox Code Playgroud)
和
java -jar target/the-packaged-file.war (Or in IDE, right click and run java application)
Run Code Online (Sandbox Code Playgroud)
好问题。
我们希望在mvn spring-boot:runIDE和运行您的应用之间没有区别。两者都使用项目的类路径启动主类。强烈建议您在使用应用程序时使用后者:如果从IDE运行应用程序,则将获得所有不错的功能,例如调试和devtools。当您需要在命令行上运行应用程序的标准方法时,可以使用前者。Maven插件还可以在集成测试阶段之前启动您的应用程序(请参阅startMaven / Gradle插件的目标)。如果使用该构建来过滤某些资源,则IDE应该注意,否则从IDE启动应用程序时,某些数据可能不会被过滤。
java -jar yourapp.jar在最终工件上运行。Spring Boot负责构建应用程序的类路径。过滤的资源存储在jar中。但最后,它的意思是做完全相同的事情。
现在您的问题已经解决war了。您不能期望常规war回调适用于作为主类运行的对象。话虽如此,Spring Boot尽其所能为您提供所有工具以使其保持一致。war从运行中的servlet容器启动的A 不会从main方法初始化,而是从servlet初始化程序初始化。但是,您可以共享初始化代码,以便保持一致。插件的运行目标将添加,src/main/webapp以便这些文件也被提供。
TL; DR如果您要在所有环境中寻找一致的故事,请不要使用战争包装。
| 归档时间: |
|
| 查看次数: |
2255 次 |
| 最近记录: |