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包部署。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT学习小镇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值