Spring Native beta 版发布, 技术融合越来越快,你现在已经掌握了嘛?

SpringNative:把Spring项目编译成原生程序 Spring 发布了 Spring Native 的 beta 版本,该功能已经在 start.spring.io 上可用了。 Spring Native 是什么 Spring Native 可以通过 GraalVM 将 Spring 应用程序编译成原生镜像,提供了一种新的方式来部署 Spring 应用。Spring Native 支持 Java 和 Kotlin。 这个项目的目标是寻找 Spring JVM 的替代方案,提供一个能将应用程序打包,并运行在轻量级容器的方案。期望能够在 Spring N 阅读详情

一、前言

经过一年半的工作,我很高兴地宣布,Spring Native beta 版发布,并且可在 start.spring.io 中直接使用!
这意味着 Spring 除了支持的常规 Java 虚拟机外部署外,我们还增加了使用 GraalVM 将 Spring 应用程序编译为 Native images 的方式,用来对编译型的 Spring 应用程序提供 bata 版支持。同时也支持 Java 和 Kotlin。
这些 Native Spring 应用程序可以作为独立可执行文件进行部署(无需安装 JVM),并且还提供了一些有趣的特性,包括几乎即时启动(通常<100ms)、即时峰值性能和较低的内存消耗,但同时也会付出一些代价,比如构建的时间更长,运行时优化比 JVM 更少。
在这里插入图片描述

使用 mvn spring-boot:build-image 或 gradle bootBuildImage 命令,就可以生成一个优化过的容器镜像,该镜像将包含最小的操作系统层和一个小的可执行文件,该文件只提供 JDK、Spring 和应用程序中使用的依赖所需的 bits。例如,下面一个最小的容器镜像,其中包含一个 50MB 的可执行文件,其中包含 Spring Boot、Spring MVC、Jackson、Tomcat、JDK 和应用程序。
在这里插入图片描述在广泛的使用案例中,Native 原生使您的 Spring 应用程序更有意义:

  • 基于 Spring Cloud Function 的 Serverless 无服务
  • 更经济实惠的 Spring 微服务托管
  • 非常适合 Kubernetes 平台,例如VMware Tanzu
  • 希望创建包含 Spring 应用和服务的最佳的容器镜像

我相信在 Spring 社区您会发现更多有趣的示例,像 this great tutorial 这个开源项目就是演示如何在 Knative 上使用 Spring Boot 和 GraalVM 构建 Native 微服务。

二、团队协作

Spring Native beta 版本是 Spring 团队和 Spring 生态深度协作的产物:Spring Framework、Spring Boot 以及 Spring Data、Spring Security、Spring Cloud 和 Spring Initializr。通过下面这个视频来观看 Spring 团队介绍我们该如何构建 Spring Native beta 及其它所提供的功能,包括对于全新的 start.spring.io 支持的演示。

我们的 Native 工作范围比 Spring 更广,因为 Native 涉及更广泛的 JVM 生态,所以我们一直在与 GraalVM 团队合作,优化 Native image 的兼容性和空间占用。这里是 GraalVM 团队成员 Vojin Jovanovic 的一段话:

“与 Spring 团队合作构建 native JVM 生态是一件非常愉快的事:他们深厚的技术知识和敏锐社区洞察总能带来最佳的解决方案。最新的 Spring Native 版本以及 Spring 在 JVM 生态中的大量使用,为 native 编译的广泛使用铺平了道路。”

三、支持范围

随着 Spring Native 从 alpha 过渡到 beta 版,弄清支持范围非常重要。

Alpha 是第一步,我们进行了大量实验并完善了 Spring Native(以前称为 Spring GraalVM Native)体系结构、兼容性和对一系列示例进行了大量的更改。我们还反馈了 GraalVM 团队为了缩小 JVM 和 Native for Spring 应用之间的差距而修复的许多问题。

尽管它仍被认为是试验性的,但 beta 意味着 Spring 现在为 Spring 生态的子集提供了对 Native 的支持。如果您的项目正在使用可支持的依赖,可以在项目上试用它;如果出现问题,请报告 bug或发起 pr 请求。最新版本的 Spring Boot 2.x 小版本的每个补丁版本都会有一个 Spring Native 新版本。Spring Native 0.9.0 支持 Spring Boot 2.4.3,Spring Native 0.9.1 支持 Spring Boot 2.4.4 等。虽然会发生一些重大变化,但我们将记录迁移过程。文档质量达到了一个新水平:参考文档以 html 单页 或 pdf 的形式提供,并且我们发布了 Native hint 公共 Api 的 Javadoc。

四、start.spring.io

Stéphane Nicoll(Spring 核心开发者之一)添加了 start.spring.io 对 Spring Native 的支持和相关 IDE 的集成,到目前为止,这是探索如何使用 SpringNative 应用程序最简单快速的方法。
在这里插入图片描述
添加 Spring Native 依赖项将自动配置 Maven 或 Gradle,其中包含支持 Native 所需的依赖项和插件。应用程序本身代码是不需要更改的。

请务必检查生成的 HELP.md 文件,其中包含常用的链接和文档,另外还特别标准了 Native 无法支持的某些依赖。

五、Ahead-of-time(AOT)转换

Native 与 JVM 不同之处:classpath 在构建时是固定的,反射或资源需要配置,没有类延迟加载(可执行文件中的所有内容都在启动时加载到内存中),一些代码可以在构建时被调用。

为了充分利用这些特性,并允许 Spring 应用程序在 Native 上以最大的兼容性和最小的占用空间运行,Brian Clozel在这个发布版中引入了 Spring ahead-of-time (AOT)Maven 和 Gradle 插件,它们可以在应用程序上执行提前转换。

第一种转换是基于著名的 Andy Clement 设计和实现的推理引擎来生成 GraalVM Native 配置(反射、资源、代理、本机映像选项),Andy Clement 了解 Spring 编程模型和基本构造是什么样的。例如,对于@Controller注解的每一个类,都有一个条目被添加到已生成的reflect-config.json文件中。

一些 Native 配置无法被推理出来,针对这个问题,我们引入了 Native hint annotations(更多细节请参考Javadoc),它允许 Spring Native 使用一种比常规 JSONnative image 配置更易于维护、类型安全和更加灵活的方式支持 native 配置。

例如,MySQL 驱动程序支持 Spring Native 提供提示,允许在 Native imagereflect-config.json,resource-config.json和native-image.properties中生成正确的条目。具体如下:
在这里插入图片描述
NativeConfiguration 和其他动态配置机制允许生成更强大和更加动态的配置,但要注意它们的 API 在未来的版本中会有很大的变化。

Spring 开发人员也可以直接用程序明确示意的注解@Configuration或@SpringBootApplication,例如通过 RestTemplate 或 WebClient 之类的 API 将Book类序列化为 JSON:
在这里插入图片描述
在使用预转换机制时,最后一种可能也是最强大的机制是使用 Spring Boot 部署模型引入的封闭假设和 GraalVM Native image 特性自动生成 Native 优化的代码(源代码和字节码)的能力。这里的目标是限制所需额外的 Native 配置的数量来增加兼容性,通过使用代码结构可以解析出开箱即用的 Native image,并且通过减少反射,资源或代理所需的配置量实现更低的空间占用。这方面一个具体的示例是将各种spring.factories(Spring Boot 背后的扩展机制)提前转换为优化的编程版本,该版本不需要反射,并且可以在应用程序的上下文中过滤掉不必要的条目。

这只是 Spring AOT 的一个开始,我们打算在功能配置中添加更强大的转换(如@Configuration),以使用预解析来替换运行时反射,该预解析将自动生成将使用 lambdas 和 method 这样的程序化构造的配置类。这将允许 GraalVM 本机映像编译器能开箱即用的推断 Spring 配置,而不需要任何反射配置或*.class资源。

关键是在使用 Spring Native 时,默认情况下在 JVM 上也会使用 AOT 生成的代码,以允许您使用 JVM 允许的短反馈循环来使用“Native 友好的代码路径”。

虽然 Spring AOT 转换目前主要是由 Native 需求驱动的,但其中很多都不是 Native 特定的,有些可能会为在 JVM 上运行 Spring Boot 应用程序提供优化。跟以往一样,重要的是数据驱动,因此我们将权衡效率和性能来驱动我们的决策。

我们也会完善 IDE 的集成,确保在 IDE 中运行应用程序之前,请先阅读相关文档以了解的手动配置步骤,更新生成的源代码。

六、总结

Spring 转向 Native 的战略有两个主要侧重点。第一个是使 Spring 基础架构适配 Native,而不需要对数百万个现有的 Spring Boot 应用程序进行重大修改。其中包括我们在 Spring 顶级项目中所做的更改,使其对 Native 友好,我们将在 Spring Native 中发展像@NativeHint之类的基础架构以及 Spring AOT 构建插件。查看我们的路线规划,以获取更多关于后续进展的信息。

第二个是比 Spring 本身更广泛,Native 是一个具有与 JVM 不同的特性的平台,但是 Java 生态系统需要尽可能地保持一致,以免出现两种非常不同的 Java 风格,这将导致难以维护。这就是为什么我们与 GraalVM 团队进行紧密合作以缩小这一差距的原因。在接下来的几个月中,我们将专注于在更广泛的 JVM 生态系统改善提升 Native 的测试和配置。

Spring 开发者们可以通过我们提供的各种示例来了解有关 Native 的更多信息,继续进行start.spring.io来测试我们新 Native 的支持,阅读更新的参考指南,阅读发行说明,尤其是从早期版本升级,甚至为您最喜欢的依赖提供支持。如果您想了解更多有关 Spring 商业化的支持信息,也可以与我们联系。

最后,我非常感谢 Spring 社区提供了许多有用反馈和贡献,感谢 GraalVM 团队有如此出色的协作,以及更多的 Spring 开发者团队,是他们的努力使 Native 集成变得更加容易。

Enjoy!

最后大家给个点赞 评论 收藏叭

Java集成Hugging Face模型实战:ONNX Runtime高效推理指南 BERT等预训练语言模型已成为NLP任务的基础组件,其核心原理是基于Transformer架构的上下文感知表征学习。在生产环境中,模型推理需兼顾低延迟、高吞吐与运维一致性,而Java作为企业级后端主力语言,天然具备JVM统一管控、成熟监控生态和强稳定性优势。ONNX Runtime凭借对Hugging Face模型的原生兼容性、CPU/GPU双模加速能力及轻量级Java API,成为Java服务集成文本模型的首选技术路径。本文聚焦金融风控、电商搜索、政务知识图谱等典型场景,详解如何将Hugging Face 阅读详情

相关推荐

LLM生产化实战:RAG故障排查与系统稳定性工程

大语言模型(LLM)在真实产线中并非单纯比拼参数量或准确率,而是围绕文本处理、向量检索、服务集成与可观测性构建的系统工程。其核心原理在于将prompt→token→vector→score→text的链路解耦为可调试、可监控、可灰度的模块;技术价值体现在降低故障定位成本、提升SLA稳定性、实现跨框架能力复用;典型应用场景包括金融合同比对、医疗EMR问答、保险客服机器人等需高可靠语义检索的领域。本文聚焦RAG系统常见失效模式——如PDF解析噪声、query重写失准、向量库缓存击穿及微调灾难性遗忘,并基于真实产

weixin_33691817的博客 389

Spring Native 0.11.1 入门体验(Spring Boot 2)

近几年“原生”一词一直泛滥在云计算、边缘计算等领域中,而原生宠幸的语言也一直都是 Golang,Rust 等脱离 Sandbox 运行的开发语言。Java 得益于上世纪流行的一次编译,到处执行的理念,流行至今,但也因为这个原因,导致 Java 程序脱离不了 JVM 运行环境,使得不那么受原生程序的青睐。在云原生泛滥的今天,臃肿的 JVM 使 Java 应用程序对比其他语言显得无比的庞大,各路大神也想了很多方式让 Java 变的更“原生”。

Hi there 6335

语音原生多模态理解器:架构原理与工业级部署指南

多模态语音模型正从‘语音转文本’的附属范式,迈向以语音为第一等模态的原生理解新阶段。其核心原理在于打破ASR/TTS割裂设计,通过时频双通道编码、动态模态路由门控和任务感知适配器池,实现语音、文本、语义的三角协同建模。技术价值体现在零样本跨任务泛化能力与真实噪声鲁棒性,支撑语音意图识别、口语化指令控制、环境音描述等高价值场景。本文聚焦华人团队开源的Speech-DeepSeek项目,深入解析其语音原生架构、HF登顶关键机制及本地部署避坑实践。

weixin_33857679的博客 346

Spring Native Beta 正式发布,原生更香!

点击上方“程序猿技术大咖”,关注并选择“设为星标”回复“加群”获取入群讨论资格!作者 | Spring 官方博客译者 | 张卫滨策划 | 万佳最近,Spring 发布了Spring Nat...

xcbeyond|疯狂源自梦想,技术成就辉煌 2787

Gemini 3.5 Flash秒回机制与Agent工程实践解析

大模型推理延迟是AI Agent落地的核心瓶颈,其本质涉及计算图调度、KV缓存管理与工具调用协同等底层原理。Gemini 3.5 Flash通过动态计算图裁剪、分层KV缓存复用和异步工具调用流水线,实现首token延迟低于320ms、端到端任务响应进入亚秒级,显著提升多步骤智能体的交互实时性与任务连贯性。该能力并非依赖模型轻量化,而是面向真实工作流(如财报分析、合规审查、设备诊断)的系统性工程优化,适用于金融、制造、教育等需高时效性决策支持的垂直场景,为构建状态化、主动式、可验证的AI Agent提供新一代

weixin_33738555的博客 344

VS Code插件生态的AI进化:从功能扩展到智能协同中枢

现代IDE插件已超越传统‘功能封装’范式,演进为融合上下文理解、多模型路由与安全沙箱的AI协同中枢。其技术本质是基于Language Server Protocol(LSP)和Extension Host运行时构建的语义化开发操作系统,核心价值在于将分散工具链(Git/ESLint/Docker)与大语言模型能力无缝编织进开发者工作流。这一演进并非淘汰插件生态,而是推动其向高密度、可审计、人机共驾的方向升级——典型如Roo Code、Continue等AI原生插件,已实现项目拓扑扫描、意图澄清、模型动态调度

weixin_33692284的博客 347

spring boot graalvm native reflect-config.json without it being registered for runtime reflection.

spring boot graalvm native reflect-config.json without it being registered for runtime reflection. 报错内容:without it being registered for runtime reflection. Add it to the reflection metadata to solve this problem.

weixin_51984983的博客 1093

Gemini 3.5 Flash:AI编程的物理层重构与意图编译革命

大语言模型在代码生成中的应用正从‘文本补全’迈向‘意图理解’,其核心演进体现在低延迟推理、百万级上下文支持与原生工具调用等底层能力突破。Gemini 3.5 Flash并非简单提速,而是通过动态计算图编译、硬件感知KV缓存与原生AST生成协议,将AI编程从应用层辅助推向开发环境的‘物理层’——即决定响应速度、上下文深度与执行确定性的基础架构层。这种重构使‘意图编译’成为可能:开发者无需撰写提示词,而通过UI交互、代码选中与约束勾选,直接将模糊需求转化为可执行的结构化输出。它适用于IDE深度集成场景下的实时重

weixin_30411239的博客 594

java运行包精简探索(graalvm)

java运行包精简探索(graalvm)

Turn X7 2434

MuleSoft驱动的企业级AI编排:LLM集成、治理与生产落地

AI编排(AI Orchestration)是企业将大语言模型(LLMs)深度融入现有IT架构的核心范式,其本质在于解决协议异构、合规审计与可观测运维三大工程挑战。不同于轻量级LangChain链路,企业级AI需依托成熟集成平台实现服务调度、上下文治理、安全脱敏与全链路追踪。MuleSoft凭借原生多协议支持、DataWeave数据转换、Anypoint治理套件及混合云运行时,成为SOA/ESB演进中承载LLM调用的可靠中枢。该能力广泛应用于智能合同审查、RAG增强客服、跨系统AI工作流等高合规、强集成场景

cumian9828的博客 500

【信息科学与工程学】【广告科学】第四十四篇 广告平台投放和广告计费类算法01

全行业的中国企业广告投放模型总表。行业分类依据《国民经济行业分类》(GB/T 4754—2017)的门类/大类 ,产品层参考"主营产品统计代码"行业—产品映射 ,平台算法以巨量引擎、腾讯广告等官方文档为硬支撑 ,合规部分严格对齐《互联网广告管理办法》以及2026年市场监管部门最新合规提示 。编号类型(门类)行业(大类)企业及产品内容列表投放模型投放平台投放人群欲望激发维度面向人群模式(地域/文化/年龄/角色)001A 农林牧渔01 农业北大荒/中粮:五常大米、面粉、食用油、杂粮品牌曝光 + 电商转化双轨(C

weixin_49199313的博客 1645

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

【信息科学与工程学】【通信工程】计算机科学与自动化——第二百三十三篇 云NaaS服务 系列二02

字段内容类型​云网络自定义路由表(Custom Route Table):允许用户自定义 VPC 或子网的路由规则,控制流量走向,支持黑白名单、策略路由。端计算节点->边缘计算节点->边缘DC->中心云的网络情况及存储需求及配置情况列表​端计算节点为 VPC 内的云资源。边缘计算节点不适用。边缘 DC 和中心云为路由表管理平台。存储需求:路由条目存储于数据库。网络:路由表在虚拟路由器中执行。QoS:无。网络的端到端配置(从接入到汇聚到核心)​。

weixin_49199313的博客 327

工作中使用到的单词(软件开发)_第三版

====

sun0322 1万+

eMMC FFU固件更新实战:从协议解析到设备修复

本文详细解析eMMC FFU固件更新技术,从协议原理到实战操作,涵盖EXT_CSD寄存器操作、命令流状态机解析及专业工具使用指南。通过真实维修案例,展示如何利用FFU机制修复设备故障,并提供高级优化技巧与安全注意事项,是硬件工程师和维修技术人员的实用参考。

weixin_29191761的博客 377

Abaqus复合材料层合板仿真

由于复合材料的损伤失效问题过于复杂,解析方法受到数学工具的限制难以实现,而实验也需要高昂的费用和时间成本难以广泛应用,Abaqus针对复合材料提供了专业的建模工具和损伤分析理论来模拟复合材料层合板在各种工况下的失效行为。

JXHXHL的博客 2538

Python与Java在2020年的真实分工与协作逻辑

Python和Java是两种设计目标迥异的通用编程语言:Python以开发效率和生态胶水性见长,天然适配数据科学、AI模型开发与快速原型验证;Java则依托JVM成熟生态,在高并发、强一致性、长期可维护的企业级系统中具备不可替代性。二者并非性能或语法的简单比拼,而是工程约束下的理性选型——当项目第一性需求是算法迭代速度或实验敏捷性,Python成为首选;当核心诉求是确定性延迟、事务安全与千人协作规范,Java即为基石。2020年典型产线实践已普遍采用‘Python做智能中枢,Java承交易主干’的混合架构,

weixin_33875564的博客 397

双向全桥隔离DC-DC变换器(DAB)的调制优化与挑战解析

本文深入解析了双向全桥隔离DC-DC变换器(DAB)的核心调制技术及其面临的挑战。文章从基础的相移调制(SPS)入手,逐步探讨了扩展相移(EPS)、双重相移(DPS)等进阶策略,并重点分析了电流优化与零电压开通(ZVS)等硬核优化技巧。针对DAB在实际应用中存在的建模困难、多模块并联及数字实现等挑战,提供了实用的应对策略与设计思路,旨在帮助工程师在性能、复杂度与成本之间找到最佳平衡。

weixin_29271053的博客 570

对于系统架构:从单体到云原生的九阶演进之路

本文系统梳理了从单机架构到千万级并发分布式系统的九次架构演进历程,以电商平台为例,详细分析了每个阶段的架构特点、瓶颈问题及解决方案。文章首先强调了架构演进的核心逻辑是随业务增长逐步解决瓶颈问题,而非一次性设计。随后通过九次跃迁(如应用数据分离、读写分离、微服务化等)展示了技术决策背后的思考过程,包括引入缓存、分库分表、容器编排等关键技术。最后总结了架构决策方法论,指出应基于实际业务需求选择合适架构,避免过度设计。全文提供了技术选型速查表,为开发者提供实用参考。

2503_92929084的博客 436

Xilinx FPGA平台GTX简易使用教程(四)GTX IP核配置教程

干货来了,GTX IP核配置,搬砖全靠它~~

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

Python无法拒绝的表白界面(完整代码)

Python制作一个无法拒绝的表白界面的完整代码。

AIGC 5万+

Spring Native 解放 JVM

放入类路径,就能在目标系统上进行扩展。不幸的是,这会减慢启动时间,而且不会带来任何好处,尤其是对于云原生应用,因为在云原生应用中,服务器运行时和。的多语言能力使得在一个应用程序中混合使用多种编程语言成为可能,同时消除了不同语言间互相调用的成本。虚拟机相比,原生镜像可以在许多场景下降低工作负载,包括微服务,函数式服务,非常适合容器和。因此,需要为每个支持的目标系统进行一次构建,在使用。的替代方案,提供一个能将应用程序打包,并运行在轻量级容器的方案。在运行时进行编译,这样可以在执行应用程序时进行观察和优化。

程序猿进阶 5439

【23】OpenCV C++实战篇——张正友相机标定【相机标定原理、相机标定流程、标定结果评价、图像畸变矫正】

R是3×3的正交单位矩阵(即旋转矩阵),t为平移向量,R、t与摄像机无关,所以称这两个参数为摄像机的外参数(extrinsicparameter),可以理解为两个坐标原点之间的距离,因其受x,y,z三个方向上的分量共同控制,所以其具有三个自由度。R是3×3的正交单位矩阵(即旋转矩阵),t为平移向量,R、t与摄像机无关,所以称这两个参数为摄像机的外参数(extrinsicparameter),可以理解为两个坐标原点之间的距离,因其受x,y,z三个方向上的分量共同控制,所以其具有三个自由度。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 4479

Spring Native实战(畅快体验79毫秒启动springboot应用)

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档还有更多面试复习笔记分享如下《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取![外链图片转存中…(img-d9RuABdV-1713396192992)]既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

keyoukewude的博客 1859

RT-DETR改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU等)

本文记录的是改进RT-DETR的损失函数,将其替换成。现有研究通过利用边界框之间的几何关系来提高回归性能,但忽略了困难样本和简单样本分布对边界框回归的影响。不同检测任务中困难样本和简单样本的分布不同,对于简单样本占主导的检测任务,关注简单样本的边界框回归有助于提高检测性能;对于困难样本比例较高的检测任务,需要关注困难样本的边界框回归。,提高检测器在不同检测任务中的性能。实现的。

Limiiiing的博客 1922

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: Spring中让阿里p7面试官眼前一亮的代码技巧,让你收到令人心动的Offer
下一篇: 深入Hotspot源码与Linux内核理解NIO与Epoll 你学明白了吗???
普通网友
博客等级 码龄6年 3807粉丝 69原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值