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

微表单网站小程序开发公司推选北京华网天下

微表单网站,小程序开发公司推选北京华网天下,建设银行官方网站手机版下载安装,跨境电商和外贸的区别一、Spring Native 是什么 Spring Native可以通过GraalVM将Spring应用程序编译成原生镜像#xff0c;提供了一种新的方式来部署Spring应用。与Java虚拟机相比#xff0c;原生镜像可以在许多场景下降低工作负载#xff0c;包括微服务#xff0c;函数式服务#xff0c;非常…一、Spring Native 是什么 Spring Native可以通过GraalVM将Spring应用程序编译成原生镜像提供了一种新的方式来部署Spring应用。与Java虚拟机相比原生镜像可以在许多场景下降低工作负载包括微服务函数式服务非常适合容器和Kubernetes。使用原生镜像有明显优势如快速启动提高峰值性能以及降低内存消耗。Spring Native支持Java和Kotlin。 这个项目的目标是寻找Spring JVM的替代方案提供一个能将应用程序打包并运行在轻量级容器的方案。期望能够在Spring Native中支持所有的Spring应用程序几乎不用修改代码。 原生本地镜像是一种将Java代码构建为独立可执行文件的技术。该可执行文件包括应用程序类、其依赖项的类、运行时库类以及来自JDK的静态链接本地代码。JVM被打包到原生镜像中因此在目标系统上不需要任何Java运行环境但构建产物依赖于平台。因此需要为每个支持的目标系统进行一次构建在使用Docker等容器技术时会更加简单将容器构建为一个目标系统可以部署到任何Docker运行时。 二、优点 Spring Native的基础是GraalVM而GraalVM是使用Java静态编译将Java字节码编译为汇编代码即二进制native程序他摒弃了JVM这是成就它所有优点的根本原因。 【1】编译出来的原生Spring应用可以作为一个独立的可执行文件进行部署不需要安装JVM 【2】几乎瞬时的启动一般小于100毫秒 【3】瞬时的峰值性能 【4】更低的资源消耗 三、局限性 GraalVM项目也有一些缺点和权衡希望随着时间的推移有所改进 【1】构建本地映像是一个繁重的过程比JVM更长的构建时间 【2】相比于传统的Java运行方式运行时优化不足 【3】不能直接支持反射、动态代理等动态特性 【4】现在处于实验阶段生态比较少 四、原生镜像native image和常规 JVM 程序的区别 【1】在构建时会从主入口点对应用程序进行静态分析。 【2】在构建时会移除未使用的代码。 【3】需要配置反射、动态代理等。 【4】类路径ClassPath在构建时就已经确定。 【5】没有类延迟加载可执行文件中所有的内容都会在启动时加载到内存中。 【6】在构建时就运行了一些代码。 【7】构建原生镜像还存在一些局限性。 【8】一些Java切面类的特性未得到完全支持。 五、前置条件GraalVM 通用递归应用和算法语言虚拟机Graal VM是一个高性能的JDK发行版专为Java和其他JVM语言编写同时支持JavaScript、Ruby、Python和其他几种语言。GraalVM的多语言能力使得在一个应用程序中混合使用多种编程语言成为可能同时消除了不同语言间互相调用的成本。它提供了一个原生镜像生成器Native Image builder这是一个从Java应用中生成原生代码并将其与VM一起打包成独立可执行文件的工具。Spring Boot Maven和Gradle Plugin除了少数 例外情况Mockito目前不支持原生测试正式支持该工具。 Ahead-Of-TimeAOT编译是将高级Java代码编译成本地可执行代码的过程。通常由JVM的即时编译器JIT在运行时进行编译这样可以在执行应用程序时进行观察和优化。在AOT编译的情况下这一优势就不复存在了。 通常在进行AOTAhead-of-Time编译之前可以选择进行一个单独的步骤称为AOT处理即从代码中收集元数据并提供给AOT编译器。将这两个步骤分开是有意义的因为AOT处理可以是针对特定框架的而AOT编译器更加通用。下面的图片给出了一个概览 Java平台的另一个特点是只需将JAR放入类路径就能在目标系统上进行扩展。通过启动时的反射和注解扫描就能在应用中获得扩展行为。不幸的是这会减慢启动时间而且不会带来任何好处尤其是对于云原生应用因为在云原生应用中服务器运行时和Java基类都打包到了JAR中。因此可以放弃这一功能然后可以使用闭环优化Closed World Optimization来构建应用。 详细信息参考JIT即时编译与AOT提前编译 GraalVM 官网 六、Spring Native 基础环境搭建 【1】必须安装Docker 可以参考 Windows10 Docker Desktop安装 同时注意要能够以非root用户启动和运行。可以通过使用docker run hello-world 不包含sudo命令检查Docker daemon是否可用。 【2】快速创建一个SpringBoot项目。 【3】添加Spring Native依赖 必须在项目中手动加入和配置。对于AOT处理有一个单独的Maven和Gradle插件它并没有合并到Spring Boot插件中。org.springframework.experimental:spring-native提供了native配置的API例如NativeHint这些Spring运行成native image的注解类。 dependencygroupIdorg.springframework.experimental/groupIdartifactIdspring-native/artifactIdversion0.9.1/version /dependency【4】添加Spring AOT插件 Spring AOT插件执行代码的提前转换有助于改善原生镜像的占用空间和修复native image的兼容性。 plugingroupIdorg.springframework.experimental/groupIdartifactIdspring-aot-maven-plugin/artifactIdversion0.9.1/versionexecutionsexecutionidtest-generate/idgoalsgoaltest-generate/goal/goals/executionexecutionidgenerate/idgoalsgoalgenerate/goal/goals/execution/executions /plugin【5】开启native image支持 Spring Boot的Spring Boot Buildpacks support可以将Spring Boot应用程序打包成一个容器。native image buildpack可以通过BP_NATIVE_IMAGE环境变量开启。 plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationimagebuilderpaketobuildpacks/builder:tiny/builderenvBP_NATIVE_IMAGEtrue/BP_NATIVE_IMAGE/env/image/configuration /plugin【6】构建本地应用程序 通过此命令可以创建一个使用GraalVM native image compiler构建的Linux容器默认情况下这个镜像是在本地。 mvn spring-boot:build-image【7】原生镜像构建 该Profile将在打包阶段调用构建中的native-image编译器。通过在Maven package命令中提供native Profile就可以构建原生镜像了mvn clean package -Pnative profilesprofileidnative/idbuildpluginsplugingroupIdorg.graalvm.buildtools/groupIdartifactIdnative-maven-plugin/artifactIdversion0.9.17/versionexecutionsexecutionidbuild-native/idgoalsgoalbuild/goal/goalsphasepackage/phase/execution/executions/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationclassifierexec/classifier/configuration/plugin/plugins/build/profile /profiles
http://www.yingshimen.cn/news/95598/

相关文章:

  • 广州市建设工程交易中心网站免费网站诊断
  • 网站 空间 备案天元建设集团有限公司怎么样
  • 网站优化检测网页设计页面布局模板
  • 企业网站建设问题中国设计网站排行榜前十名
  • 贵州毕节建设局网站官网廊坊那家做网站排行榜
  • 卖酒网站排名公司营业执照怎么查询
  • 为朋友做的网站wordpress关键词修改
  • 做网站要考虑什么作文网投稿
  • 网站建设系统公司地址做宽带销售网站
  • 建站之星快速建站价格wordpress屏蔽優酷廣告
  • 一家专门做房产特卖的网站大连网络营销师招聘信息
  • 烟台网站公司discuz破解
  • 竹子建站怎么样wordpress多用途主题推荐
  • 政务公开网站开发公司网页网站建设ppt模板
  • 做彩票的网站国际网站哪里做
  • 机械行业网站建设方案网站目录层级建设
  • 刷神马网站优化排名wordpress 订单插件
  • 广州市建设企业网站报价茶企业网站建设模板
  • 农业网站建设方案 ppt模板下载陶瓷网站模板下载
  • 网站备案如何取消接入给公司做的东西放到私人网站上
  • 用adsl做网站备案连锁会员管理系统
  • 网站流量多少百度联盟网站备案信息
  • 动画网站欣赏哪个网站教人做美食
  • 网站设计时间郑州小程序制作流程及费用
  • 怎么建医疗网站免费的微网站制作
  • 做网站类型的营业执照证明如何填写做网站建设工资高吗
  • 个人网站推广软件企企管理云平台
  • 望牛墩网站建设做外贸没有网站需要注意什么问题
  • 咸阳免费做网站公司网站建设与管理教案怎么写
  • 漳州做网站wordpress文章表情