给企业做网站的业务员,网站制作 搜索,终身免费建站,怎么看网站是否备案成功更多SpringBoot3内容请关注我的专栏#xff1a;《SpringBoot3》 期待您的点赞#x1f44d;收藏⭐评论✍ 重学SpringBoot3-SpringBoot可执行JAR的原因 Spring Boot可执行JAR的结构打包运行JAR 包内部结构 工作原理优点总结 Spring Boot 的一个核心特性是它的可执行 JAR#x… 更多SpringBoot3内容请关注我的专栏《SpringBoot3》 期待您的点赞收藏⭐评论✍ 重学SpringBoot3-SpringBoot可执行JAR的原因 Spring Boot可执行JAR的结构打包运行JAR 包内部结构 工作原理优点总结 Spring Boot 的一个核心特性是它的可执行 JAR通常称为“Fat JAR”或“Uber JAR”这种 JAR 文件包含了应用程序所有的依赖库使得应用可以通过简单的 java -jar 命令独立运行。这个特性极大地简化了部署流程使得 Spring Boot 应用可以轻松地在各种环境中部署和运行不再依赖特定的应用服务器。下面将介绍 Spring Boot 可执行 JAR 的工作原理和它是如何实现独立运行的。
Spring Boot可执行JAR的结构
Spring Boot 的可执行 JAR 不同于传统的 JAR 文件。传统的 JAR 文件通常只包含应用程序的类和资源文件而所有的依赖库则需要以某种方式如放在一个共享的类路径中单独提供。相比之下Spring Boot 的可执行 JAR 包含了应用程序及其所有依赖的库还包括一个嵌入式的 Servlet 容器如 Tomcat、Jetty 或 Undertow以及一段特殊的启动引导代码。
打包运行 命令行中输入 java -jar xxx.jar 即可运行 jar 包。 JAR 包内部结构 一个 Spring Boot 可执行 JAR 的内部结构大致如下
META-INF/包含了 MANIFEST.MF 等元数据文件MANIFEST.MF 中指定了主启动类Main-Class和类路径Class-path。 BOOT-INF/classes/包含了应用程序的编译后的类文件。 BOOT-INF/lib/包含了应用所有依赖的第三方库。 org/包含了 Spring Boot 的启动器类。
工作原理
Spring Boot 可执行 JAR 的核心是它的启动器Launcher。当我们执行 java -jar 命令运行 Spring Boot 应用时JVM 实际上是加载并执行 JAR 文件中指定的启动器类。启动器类的作用包括
设置类加载器启动器会创建一个自定义的类加载器来加载 BOOT-INF/classes/ 和 BOOT-INF/lib/ 中的类和库。这确保了应用程序能够访问到其依赖的所有库即使这些库并不在 JVM 的默认类路径中。启动嵌入式Servlet容器启动器初始化并启动嵌入式的 Servlet 容器比如 Tomcat。这个过程中它会将应用程序部署到容器中。启动Spring应用上下文最后启动器会启动 Spring 应用上下文完成应用程序的初始化和 Bean 的装配过程。
优点
Spring Boot 的可执行 JAR 模式带来了多个优点
简化部署由于应用程序和它的所有依赖都包含在一个 JAR 文件中部署应用变得非常简单。只需将 JAR 文件传输到服务器上然后执行 java -jar 命令即可启动应用。独立运行应用不再依赖外部的 Servlet 容器或应用服务器。这减少了环境差异带来的问题提高了应用的可移植性。快速迭代开发过程中可以快速打包并运行应用加速开发和测试流程。
总结
Spring Boot 的可执行 JAR 为 Java 应用的部署和运行提供了一种简单高效的方式。通过将应用程序和其所有依赖打包到一个独立的JAR文件中并利用启动器动态加载这些依赖Spring Boot 应用可以轻松地在任何提供了 Java 运行时环境的系统上运行。这种模式不仅优化了部署流程还为应用的开发、测试和生产部署提供了极大的便利。随着微服务和云原生应用的兴起Spring Boot 的这一特性无疑提供了巨大的价值。