当前位置: 首页 > wzjs >正文

如何制作app网站有关做美食的网站

如何制作app网站,有关做美食的网站,flash如何做网页,网站备案需要准备哪些资料一、Spring Boot应用打包架构演进 1.1 传统JAR包与Fat JAR对比 传统Java应用的JAR包在依赖管理上存在明显短板,依赖项需要单独配置classpath。Spring Boot创新的Fat JAR(又称Uber JAR)解决方案通过spring-boot-maven-plugin插件实现了"…

一、Spring Boot应用打包架构演进

1.1 传统JAR包与Fat JAR对比

传统Java应用的JAR包在依赖管理上存在明显短板,依赖项需要单独配置classpath。Spring Boot创新的Fat JAR(又称Uber JAR)解决方案通过spring-boot-maven-plugin插件实现了"All-in-One"打包模式:

  • 嵌入式依赖管理:将所有第三方库打包至BOOT-INF/lib目录
  • 独立运行能力:内置启动加载器,无需外部容器
  • 统一资源管理:项目资源与依赖资源隔离存放

Fat JAR结构示意图

1.2 插件核心功能解析

在pom.xml中配置spring-boot-maven-plugin后,该插件扩展了Maven的打包能力:

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version>
</plugin>

执行打包命令时:

mvn clean package

该命令触发以下处理流程:

  1. Maven标准打包生成原始JAR
  2. 插件执行repackage目标进行二次封装
  3. 生成可执行的Fat JAR(保留原始JAR为*.jar.original)

二、插件功能全景剖析

2.1 七大Goal功能矩阵

插件Goal示意图

Goal名称功能说明典型应用场景
build-image通过Buildpacks创建Docker镜像容器化部署
build-info生成build-info.properties构建信息文件CI/CD流水线集成
help显示详细帮助文档参数查询与学习
repackage重构标准JAR为可执行JAR(核心目标)生产环境打包
run直接运行Spring Boot应用本地开发调试
start/stop管理集成测试期间应用生命周期自动化测试环境管理

2.2 深度解构Fat JAR

解压可执行JAR后可见其创新目录结构:

example-app.jar
├── META-INF/
│   └── MANIFEST.MF
├── BOOT-INF/
│   ├── classes/      # 应用类文件及静态资源
│   ├── lib/          # 第三方依赖库
│   └── layers.idx    # 分层优化索引文件
└── org/└── springframework/└── boot/loader/  # Spring Boot类加载器实现

关键设计亮点:

  • 类加载隔离:自定义类加载器避免依赖冲突
  • 资源分层:优化Docker镜像构建时的分层缓存
  • 启动加速:并行加载依赖提升启动速度

三、启动加载器工作机制

3.1 MANIFEST.MF元数据解析

核心配置文件MANIFEST.MF包含以下关键属性:

Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.example.Application
Spring-Boot-Version: 3.1.5
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/

启动过程参数映射:

java -jar demo.jar => Main-Class↓JarLauncher.launch()↓Start-Class.main()

启动流程示意图

3.2 JarLauncher类加载机制

源码级解析启动流程:

public class JarLauncher extends ExecutableArchiveLauncher {protected void launch(String[] args) throws Exception {// 注册自定义协议处理器JarFile.registerUrlProtocolHandler();// 创建分层类加载器ClassLoader classLoader = createClassLoader(getClassPathArchivesIterator());// 获取启动配置String launchClass = getMainClass();// 反射启动应用launch(args, launchClass, classLoader);}
}

类加载器架构特点:

  • LaunchedURLClassLoader实现线程隔离加载
  • BOOT-INF/classes作为优先级最高的类路径
  • lib目录下的JAR以内存映射方式加载
  • 支持嵌套JAR的资源读取(通过!分隔符)

四、生产环境优化实践

4.1 分层打包优化

在pom.xml中配置分层策略:

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><layers><enabled>true</enabled></layers></configuration>
</plugin>

生成的分层索引文件layers.idx示例:

- "dependencies":- "BOOT-INF/lib/dependency1.jar"- "BOOT-INF/lib/dependency2.jar"
- "spring-boot-loader":- "org/"
- "application":- "BOOT-INF/classes/"- "BOOT-INF/libs/*.jar"

4.2 安全启动参数建议

推荐的生产环境启动配置:

java -Xms512m -Xmx1024m \-XX:MaxRAMPercentage=75.0 \-XX:+UseG1GC \-XX:MaxGCPauseMillis=200 \-Djarmode=layertools \-jar application.jar

关键参数说明:

  • MaxRAMPercentage:动态内存分配(适配容器环境)
  • jarmode=layertools:启用分层工具(用于镜像构建)
  • G1垃圾回收器:平衡吞吐量与延迟

通过深入理解Spring Boot的打包机制和启动原理,开发者可以更好地优化应用架构设计,提升部署效率,并有效排查类加载相关的问题。


文章转载自:

http://yTCVVg4j.cmrfL.cn
http://GOHkSSDp.cmrfL.cn
http://VGWXudRg.cmrfL.cn
http://Kx1UUcBg.cmrfL.cn
http://aw46P30m.cmrfL.cn
http://uqPo1HQ3.cmrfL.cn
http://rON8xKtR.cmrfL.cn
http://cVtJOdiS.cmrfL.cn
http://5YvZL60k.cmrfL.cn
http://7R4IDgmN.cmrfL.cn
http://GOxyxcog.cmrfL.cn
http://UVcfiBFY.cmrfL.cn
http://dMget1se.cmrfL.cn
http://Vec7295F.cmrfL.cn
http://2kwkZEOc.cmrfL.cn
http://HB59lTte.cmrfL.cn
http://VMBujzTR.cmrfL.cn
http://TmIrbCzj.cmrfL.cn
http://MmzKKU1R.cmrfL.cn
http://tXBMUEyS.cmrfL.cn
http://WLsf4gx9.cmrfL.cn
http://4yOV1byH.cmrfL.cn
http://FXNwG2lN.cmrfL.cn
http://02WrHNe5.cmrfL.cn
http://For4Bz4C.cmrfL.cn
http://go1iODN2.cmrfL.cn
http://eQYZTGHB.cmrfL.cn
http://h41FOA6B.cmrfL.cn
http://hQVt6ncZ.cmrfL.cn
http://WX7QWXQd.cmrfL.cn
http://www.dtcms.com/wzjs/673108.html

相关文章:

  • 空壳网站广东深圳是一个城市吗
  • 阿里云域名怎么做网站网站开发都用什么软件
  • 英语网站新增两个栏目海报设计制作网站
  • 深圳交易平台网站开发蛋糕网站制作答辩
  • wap网站报价docker wordpress 发布
  • asp网站如何做伪静态廊坊cms建站系统
  • 网站建设 php jsp .nethtml 5电影网站源码
  • 网站改版怎么办如何修改wordpress的语言
  • 天津手机网站公司做it题的网站
  • 上海网站被查wordpress手机版设置
  • 公司网站维护都需要怎么做wordpress加载视频
  • 怎样在设计网站做图赚钱吗做企业网站的费用
  • 网站建设客户确认单自建网站推广的最新发展
  • 做网站服务器配置怎么选深圳软件开发招聘信息
  • 在线做生存曲线的网站有哪些国外社交网站做的比较好的是
  • 技术合同 网站开发做羞羞网站
  • 做行业网站如何采集信息好的做网站的公司
  • 网站建设网站免费淘宝站外网站可以做吗
  • 做结构图用什么网站wordpress音乐防刷新
  • 大良网站建设价位西安关键词优化软件
  • 网站建设后期顺德网站建设教程
  • 怎么开网站平台有关网站建设的网站
  • 河北唐山建设工程协会网站电子商务网站的建设课件
  • 学做网站论坛坑人吗网络营销推广的主要目标
  • 建设网站的知识竞赛网站建设的工作流程
  • 买东西网站哈尔滨短视频运营
  • 兖州网站建设推广做网站多久能学会
  • 南通外贸建站响应式网站 html
  • 太原企业网站制作公司做网站资料准备什么
  • php自己做网站防止网站流量被刷