Jar包启动与war包启动原理分析


Spring Boot支持将应用程序打包成可执行的JAR或WAR文件,这些文件可以直接在命令行或通过Java命令启动。

【启动JAR包】:使用java -jar命令启动JAR包,例如:java -jar myapp.jar。

【启动WAR包】:将WAR包部署到Web服务器中,例如Tomcat、Jetty、Undertow等。在Web服务器中启动WAR包,例如在Tomcat中,可以将WAR包放置在Tomcat的webapps目录下,并启动Tomcat。

在Spring Boot中,使用JAR包启动应用程序是首选的方式,因为它可以快速启动和部署,并且不需要Web服务器的支持。同时,Spring Boot也提供了一些特殊的功能,例如内嵌的Tomcat、Jetty和Undertow服务器,以及自动配置和快速构建等。

【JAR包启动原理】

1、读取应用程序的配置文件:Spring Boot读取classpath下的application.properties或application.yml配置文件,并加载其中的配置信息。这些配置信息包括应用程序的端口、数据源、日志级别等等。

2、加载Spring Boot主配置类:Spring Boot会在classpath下寻找一个带有@SpringBootApplication注解的主配置类,并加载该类及其子包下的所有Bean。

3、启动内嵌的Web服务器:Spring Boot可以使用内嵌的Tomcat、Jetty或Undertow等Web服务器,这样就不需要依赖外部的Web服务器。Spring Boot会根据配置信息启动相应的Web服务器,并将应用程序发布到Web服务器上。

4、运行Spring应用程序:Spring Boot会启动Spring容器,并根据配置信息自动配置各种Spring组件,例如数据源、事务管理器、缓存、消息队列等等。Spring Boot还可以根据classpath下的各种Spring Boot Starter自动配置各种常用的功能组件。

5、启动完成:当Spring Boot完成以上步骤之后,就可以开始处理请求了。在启动过程中,Spring Boot会将各种异常信息输出到控制台,方便开发者进行调试。同时,Spring Boot还提供了诸如actuator等组件,方便开发者进行应用程序的监控和管理。

【WAR包启动原理】

1、Web容器启动:Web容器启动时,会读取WEB-INF/web.xml配置文件,并根据配置信息加载各种Servlet、Filter和Listener等组件。

2、Spring容器启动:Spring Boot应用程序中,Spring容器是通过SpringBootServletInitializer类来启动的。在应用程序中继承SpringBootServletInitializer类,并实现其configure()方法,该方法会创建Spring容器,并将配置信息加载到Spring容器中。

3、自动配置:Spring Boot的自动配置功能在WAR包部署中同样适用,会根据classpath下的Spring Boot Starter自动配置各种常用的功能组件,例如数据源、事务管理器、缓存、消息队列等等。

4、应用程序启动:当Web容器和Spring容器都启动完成之后,应用程序就可以处理请求了。在Spring Boot应用程序中,可以通过@Controller、@RestController和@RequestMapping等注解来实现各种业务逻辑处理。

5、启动完成:当Spring Boot应用程序启动完成之后,就可以通过Web容器的URL地址来访问应用程序了。在WAR包部署中,Spring Boot应用程序的启动过程与普通的Web应用程序类似,只是在应用程序中需要添加SpringBootServletInitializer类来支持WAR包部署。

猜你喜欢

转载自blog.csdn.net/weixin_44045828/article/details/129742832
今日推荐