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

做违规网站公司网站开发维护

做违规网站,公司网站开发维护,网站建设投入及费用,做app需要学什么Spring Boot 的 Fat JAR(通过 spring-boot-maven-plugin 打包)虽然简化了部署,但也存在一些潜在缺点,需根据场景权衡: 1. 启动速度较慢 原因: Fat JAR 需要在启动时解压并加载所有依赖的 JAR 文件到类路径…

Spring Boot 的 Fat JAR(通过 spring-boot-maven-plugin 打包)虽然简化了部署,但也存在一些潜在缺点,需根据场景权衡:


1. 启动速度较慢

  • 原因
    Fat JAR 需要在启动时解压并加载所有依赖的 JAR 文件到类路径,尤其是依赖较多时,类加载和初始化耗时显著。
  • 表现
    依赖较多的项目(如微服务)可能出现冷启动延迟(如 10~30 秒)。
  • 优化
    • 使用 Spring Native(AOT 编译为本地镜像)。
    • 开启分层打包(layers.enabled=true)。

2. 内存占用较高

  • 原因
    所有依赖库被加载到 JVM 内存中,即使某些依赖仅在特定场景下使用。
  • 表现
    应用内存峰值较高,可能影响资源受限环境(如低配服务器、云函数)。
  • 优化
    • 移除未使用的依赖(mvn dependency:analyze 检测无用依赖)。
    • 使用 模块化 JVM(JPMS) 按需加载依赖。

3. 文件体积过大

  • 问题
    Fat JAR 包含所有依赖,可能导致 JAR 文件体积膨胀(如 100MB+),影响网络传输和存储效率。
  • 示例
    一个简单的 REST API 服务可能因引入 Spring Data JPAHibernate 导致 JAR 包增大。
  • 优化
    • 使用 Docker 分层构建,将依赖层与应用代码层分离。
    • 通过 <excludes> 移除非必要依赖(如测试库)。

4. 依赖冲突风险

  • 问题
    当多个依赖库引入不同版本的同一库时(如 guava),可能导致版本冲突,且调试困难。
  • 表现
    ClassNotFoundExceptionNoSuchMethodError 等运行时异常。
  • 优化
    • 使用 mvn dependency:tree 分析依赖树。
    • 通过 <exclusions> 显式排除冲突版本。

5. 调试与分析困难

  • 问题
    Fat JAR 将所有内容打包为单一文件,导致日志、堆栈跟踪中的路径复杂化(如 BOOT-INF/classes!)。

  • 示例
    异常堆栈中可能显示:

    java.lang.NullPointerException: null
    at com.example.MyController E n h a n c e r B y S p r i n g C G L I B EnhancerBySpringCGLIB EnhancerBySpringCGLIB… (MyController.java:20)

  • 优化

    • 使用 -Djarmode=layertools 解压 JAR 分析内容:

      java -Djarmode=layertools -jar your-app.jar extract


6. 安全性与更新成本

  • 问题
    如果依赖库存在安全漏洞(如 log4j 漏洞),需重新打包并部署整个 Fat JAR,而非仅替换单个依赖。
  • 优化
    • 使用 Docker 镜像分层,仅更新依赖层。
    • 定期通过 mvn versions:display-dependency-updates 检查依赖更新。

7. 不适用于所有场景

不适用场景
  1. 需共享依赖的环境
    若多个应用部署在同一服务器且共享部分依赖,Fat JAR 会导致冗余存储。
  2. 热更新需求
    修改代码后需重新打包整个 JAR,无法像传统 WAR 包那样快速替换部分文件。
  3. 超大依赖库
    如机器学习模型库(几百 MB),Fat JAR 会显著增大体积。

替代方案

方案适用场景优点缺点
传统 WAR + 外部 Tomcat多应用共享服务器资源依赖集中管理,更新灵活需维护外部 Tomcat 环境
瘦 JAR + 外部依赖目录依赖变动少的场景JAR 体积小,启动略快需手动管理依赖路径
Docker 容器化云原生、微服务架构依赖隔离,资源可控需 Docker 环境支持
Spring Native超快启动(Serverless/边缘计算)毫秒级启动,内存占用低需适配 GraalVM,编译时间较长

总结

Fat JAR 的缺点主要集中在 性能开销维护成本场景适配性 上。建议根据以下场景选择:

  • 继续使用 Fat JAR
    适合简单应用、快速原型开发或容器化部署(如 Docker + 分层构建)。
  • 切换其他方案
    若追求极致启动速度 → Spring Native;
    若需共享依赖 → WAR + Tomcat;
    若依赖频繁更新 → Docker 分层镜像。

文章转载自:

http://v6puBEFZ.ryrpq.cn
http://Rp2CPP88.ryrpq.cn
http://6jBgVs6E.ryrpq.cn
http://aaOvLQMg.ryrpq.cn
http://WTZGHDbi.ryrpq.cn
http://yovRNYEp.ryrpq.cn
http://uRmaJMhW.ryrpq.cn
http://bDFGJaO8.ryrpq.cn
http://erCPXzZm.ryrpq.cn
http://flNC6NiT.ryrpq.cn
http://NV2JWujl.ryrpq.cn
http://4vG3jZtQ.ryrpq.cn
http://hEU9yplu.ryrpq.cn
http://Anery7nx.ryrpq.cn
http://TwNEWnsP.ryrpq.cn
http://h1tAfcXj.ryrpq.cn
http://ovKcjG8X.ryrpq.cn
http://jqGqG7I0.ryrpq.cn
http://JqSPFjub.ryrpq.cn
http://tBn81fEr.ryrpq.cn
http://nVSYXhQA.ryrpq.cn
http://K3GP1mUo.ryrpq.cn
http://OpmjmEWM.ryrpq.cn
http://XjvjB2hB.ryrpq.cn
http://qCgLOW0F.ryrpq.cn
http://v0Y5DYtW.ryrpq.cn
http://I7fpxnhB.ryrpq.cn
http://seAEGiCS.ryrpq.cn
http://mPFllQeH.ryrpq.cn
http://JpQxiNIk.ryrpq.cn
http://www.dtcms.com/wzjs/620100.html

相关文章:

  • 国际贸易英文网站市场调研报告800字
  • 中国移动网站建设wordpress 页面文件
  • 手机端的网站怎么做的糕点网站策划书
  • 网站文章不收录的原因建筑工程网架
  • 邢台做网站费用甘肃省建设厅注册中心网站
  • 企业网站建设课程设计crm管理
  • 我要建个网站做灯箱片的设计网站
  • 做网站去哪里网站后台管理系统展望
  • 网站建设报价明细单怎么咨询网络服务商
  • ae做动画教程网站每天免费体验6小时的云电脑
  • 网站开发团队人员配置山东住房城乡建设厅网站
  • 负责网站建设和网络推广的wordpress dux主题5.0
  • h5免费制作平台火蚁邀请函南京网站seo服务
  • 网站怎么做右上角消息提醒做网站的赚钱吗
  • 广东的网站建设企业网站建设的策略
  • 嘉兴学网站建设酷乐家居在线设计
  • 常州武进区建设局网站中文博客网站模板
  • 网站免费部署瑞安规划建设局网站
  • 山东企业建站系统信息黄骅港旅游攻略
  • 增加网站流量设计接单渠道
  • 怎么用微信做网站电商网站建设浩森宇特
  • 提供虚拟主机服务的网站网站建设的文档
  • 安徽省建设工程资料上传网站重庆做的好的房产网站好
  • 运城网站建设公司有多少网站loading动画
  • 怎么做企业网站推广需要多少钱seo站内优化
  • 河南网站建设找工作网络营销外包价格
  • 郑州做网站建设公司哪家好佛山网页设计怎么做
  • 网站建设有哪些分工分网上做分销代销哪个网站好
  • 什么是企业网站pv河北建设工程信息网一体化平台
  • 优秀高端网站建设报价html所有代码大全