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

用织梦做网站网上做分销代销哪个网站好

用织梦做网站,网上做分销代销哪个网站好,平面设计线,快抖霸屏乐云seo在 Spring Boot 中,分层打包(Layered Packaging) 是一种优化策略,特别针对 容器化部署(如 Docker) 的场景设计。它的核心思想是将应用的不同部分(依赖、资源、代码等)划分为独立的层…

在 Spring Boot 中,分层打包(Layered Packaging) 是一种优化策略,特别针对 容器化部署(如 Docker) 的场景设计。它的核心思想是将应用的不同部分(依赖、资源、代码等)划分为独立的层(Layer),利用容器镜像的分层缓存机制,减少重复构建和传输的开销。


分层打包的作用

  1. 提升 Docker 镜像构建效率

    • 如果应用代码变动但依赖未变,Docker 只需重新构建代码层,而依赖层可以直接复用缓存。
    • 减少镜像体积和构建时间,尤其适用于 CI/CD 流水线。
  2. 优化镜像层结构

    • 将频繁变动的层(如应用代码)放在上层,稳定层(如依赖)放在下层,充分利用 Docker 的层缓存机制。
  3. 减少重复传输

    • 在 Kubernetes 等集群中,节点间拉取镜像时,未变化的层可直接复用本地缓存。

分层结构

Spring Boot 默认将应用分为以下 4 个层:

层名内容变动频率
dependencies第三方依赖(如 spring-core, logback
spring-boot-loaderSpring Boot 的类加载器(JarLauncher 等)
snapshot-dependencies快照版本的依赖(如 1.0.0-SNAPSHOT
application应用代码、配置文件(src/main/**

如何启用分层打包?

1. Maven 配置

pom.xml 中启用分层:

org.springframework.boot spring-boot-maven-plugin true
2. Gradle 配置

build.gradle 中启用分层:

bootJar {
layered {
enabled = true
}
}


分层结果

打包后生成的 JAR 文件中会包含一个 layers.idx 文件,定义各层的内容:

  • “dependencies”:
    • “BOOT-INF/lib/spring-core-6.1.0.jar”
    • “BOOT-INF/lib/logback-classic-1.4.14.jar”
  • “spring-boot-loader”:
    • “org/”
  • “snapshot-dependencies”:
    • “BOOT-INF/lib/my-snapshot-lib-1.0.0-SNAPSHOT.jar”
  • “application”:
    • “BOOT-INF/classes/”
    • “BOOT-INF/config/”

与 Docker 结合使用

通过分层打包,可以编写高效的 Dockerfile

使用分层构建

FROM eclipse-temurin:17-jre as builder
WORKDIR application
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
RUN java -Djarmode=layertools -jar app.jar extract

正式镜像

FROM eclipse-temurin:17-jre
WORKDIR application
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
ENTRYPOINT [“java”, “org.springframework.boot.loader.JarLauncher”]


命令 RUN java -Djarmode=layertools -jar app.jar extract 是 Spring Boot 分层打包(Layered Packaging)中与 Docker 镜像构建 结合使用的关键步骤,其核心作用是将 Spring Boot 的可执行 JAR 文件按预定义的分层结构解压到指定目录。以下是详细解释:


命令分解

部分说明
java -jar app.jar运行 Spring Boot 生成的 Fat JAR 文件(包含所有依赖和代码)。
-Djarmode=layertools设置 JVM 参数,启用 Spring Boot 的 layertools 模式。
extractlayertools 模式下执行的命令,表示将 JAR 中的分层内容解压到文件系统。
关键步骤
  1. 使用 layertools 工具解压分层后的内容。
  2. 按层顺序复制到镜像中,依赖层(稳定)先复制,应用层(易变)最后。

自定义分层

如果需要调整默认分层逻辑,可以通过 layers.xml(Maven)或自定义 Layers 接口(Gradle)实现。例如:

<!-- src/main/layers.xml -->
<layers xmlns="http://www.springframework.org/schema/boot/layers"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/boot/layers https://www.springframework.org/schema/boot/layers/layers-3.2.xsd"><application><into layer="application"><include>com/example/**</include></into></application><dependencies><into layer="snapshot-dependencies"><include>*:*:*SNAPSHOT</include></into><into layer="dependencies"/></dependencies>
</layers>

适用场景

  • 高频部署的微服务:代码频繁更新,但依赖稳定。
  • 大型依赖项:如数据库驱动、SDK 等体积大的依赖。
  • 多环境构建:开发、测试、生产环境共用基础依赖层。

分层打包通过解耦应用的不同部分,优化了容器化部署的效率。它解决了传统 Fat JAR 在 Docker 中重复构建的问题,是 Spring Boot 对云原生场景的重要支持。


文章转载自:

http://RsE7cwk9.dtnyL.cn
http://L2hezYO7.dtnyL.cn
http://eOrSl0AQ.dtnyL.cn
http://P2D6DUr3.dtnyL.cn
http://C6DR5nRU.dtnyL.cn
http://js4ddOYJ.dtnyL.cn
http://AGfTlzyl.dtnyL.cn
http://YMMkfK7x.dtnyL.cn
http://TRKuKYau.dtnyL.cn
http://w9GZCW3z.dtnyL.cn
http://9ZcWWSo9.dtnyL.cn
http://YwUzpTm7.dtnyL.cn
http://hFvuIImd.dtnyL.cn
http://EzTRX6Hq.dtnyL.cn
http://ueoMa2xQ.dtnyL.cn
http://wnXyZZyl.dtnyL.cn
http://ul0LCVgM.dtnyL.cn
http://NSQDzinU.dtnyL.cn
http://DWyDKGna.dtnyL.cn
http://CKZ1TsSM.dtnyL.cn
http://6hdFt8lH.dtnyL.cn
http://30UutPQV.dtnyL.cn
http://44YuxEoD.dtnyL.cn
http://dHFPzgIr.dtnyL.cn
http://f7u13Slz.dtnyL.cn
http://MaLcjFJY.dtnyL.cn
http://vM8y3ivK.dtnyL.cn
http://jm4cwEaa.dtnyL.cn
http://Gjpzyugo.dtnyL.cn
http://C8Fanszr.dtnyL.cn
http://www.dtcms.com/wzjs/704888.html

相关文章:

  • 网站建设年费旅游网站建设 pig
  • 长春专业网站制作公司福州优化广告公司
  • 公司网站建设小江上海网站制作平台
  • 广州市服务好的网站制作排名网络事件营销
  • 网站编程软件有哪些怎样建设学校网站首页
  • 手机怎么搭建属于自己的网站中国工商银行app下载
  • 张家港城市建设规划局网站上海网页制作设计营销
  • 深圳电器网站建设全国私人订制平台
  • 聊城市东昌府区建设路小学网站网站设计常见流程
  • 网站建设和电子商务的关系在阿里巴巴上做网站需要什么条件
  • 快速做网站的技术成都企业网站模板建设
  • 临沂做过网站的公司亚翔建设集团有限公司网站
  • 响应式网站建设 苏州网站服务商排名
  • 广州商城网站建设地址室内设计3d效果图
  • 简单网站建设报价单濮阳做网站推广
  • 甘肃做高端网站wordpress可以做论坛
  • 邢台wap网站建设制作网页和网站有啥不同
  • 网站建设方案进行工期安排书签制作手工
  • php创建站点sae wordpress 域名
  • 风景网站模版淄博网站推广价格
  • 网站动态链接做Seo怎么办电子工程王北辰
  • 网站建设 图片问题东莞公司网络建设
  • 网站规划与设计网站页面网站怎么定位
  • 微信网站如何制作免费下载百度并安装
  • 卖域名的公司 骗做网站上海小程序搭建
  • 中国最大的家装网站网站开发维护任职要求
  • 网站怎么做推广和宣传莱芜金点子信息港房产网
  • 建站宝盒合作南昌建设公司网站
  • 绍兴网站建设08keji企业网站seo排名
  • 中山哪里有做网站苏州市住房和城乡建设局投折网站