SpringBoot除了jar、war启动的方式,还有一种启动方式

博客介绍了SpringBoot除jar、war启动外的目录启动方式,该方式可解决老版本MyBatis不支持Spring Boot新方式的问题,还提及在META - INF/MANIFEST.MF中找到指定属性,以及jar包和war包分别对应的启动类。

SpringBoot除了jar\war启动的方式,还有一种启动方式:目录启动方式

目录启动方式可以帮助解决过去的jar不支持spring boot新方式,比如老版本的MyBatis

在META-INF/MANIFEST.MF中找到两个指定属性

  Main-Class:org.springframework.boot.loader.JarLauncher

  Start-Class:com.base.app

1.如果是jar包,启动的是

  org.springframework.boot.loader.JarLauncher

2.如果是war包,启动的是

  org.springframework.boot.loader.WarLauncher

### Spring Boot JARWAR 的区别 #### 1. 定义与用途 JAR(Java Archive)是一种通用的文件格式,基于 ZIP 压缩技术。它可以用于存储类文件、资源文件以及元数据文件等[^4]。WAR(Web Application Archive)则是专门为 Java Web 应用设计的一种特殊类型的 JAR 文件,主要用于部署到传统的 Servlet 容器中,比如 Tomcat 或 Jetty。 #### 2. 部署方式 当使用 JAR 包时,Spring Boot 应用程序可以作为一个独立的应用运行,内置了一个嵌入式的容器(如 Tomcat),因此无需外部依赖即可启动服务[^2]。相比之下,WAR 文件则需要部署在一个外部的 Servlet 容器上才能正常工作。这意味着如果选择 WAR 方式,则必须配置并管理一个单独的服务器实例[^3]。 #### 3. 开发模式支持 对于希望快速构建微服务架构或者小型项目的开发者来说,采用 JAR 形式更为便捷高效;而对于那些已经存在成熟企业级应用框架的企业内部项目而言,可能更倾向于继续沿用传统的方式即通过 WAR 来集成现有系统结构[^1]。 #### 4. 启动机制差异 以 JAR 格式发布的 Spring Boot 应用可以直接利用 `java -jar` 命令来执行整个程序,并且其入口点由 Main 方法定义完成初始化过程。然而,在创建 WAR 版本的时候,为了使该 webapp 能够兼容标准 servlet api ,通常还需要让主类继承自 `SpringBootServletInitializer` 并重写 configure() 函数实现额外设置。 ```java public class MyApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(MyApplication.class); } } ``` 上述代码片段展示了如何调整默认行为以便适应于外部容器环境下的加载需求。 --- ### 总结 综上所述,无论是选择 JAR 还是 WAR 打包形式都各有千秋,具体取决于实际应用场景和个人偏好等因素决定最佳方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值