1.应用配置表-Config

本文档详细介绍了GameFramework中的应用配置表Config,包括其介绍、点评、类图、使用方法以及代码分析,旨在帮助Unity游戏开发者更好地理解和运用Config。

GameFramework应用配置表Config

介绍

类似 window 的 .ini 文件的配置,可以有几个配置文件,加载配置会合并,后来的会丢弃
文件格式  # 开头表示注释, Name\t=\tValue\t;  \t就是Tab键

点评

不考虑扩展性相当于自己写个解析 .ini 的

类图

你提供的 `bootstrap.properties` 内容如下: ```properties spring.application.name=gulimall-coupon spring.config.import="nacos:${spring.application.name}" spring.cloud.nacos.config.server-addr=127.0.0.1:8848 ``` 这个配置 **存在两个关键问题**,会导致启动失败或无法正确连接 Nacos,我们来逐条分析并给出修正方案。 --- ## ❌ 问题一:`spring.config.import` 中的引号是多余的(语法错误) ```properties spring.config.import="nacos:${spring.application.name}" ``` ⚠️ **错误原因**:在 `.properties` 文件中,字符串值**不需要加双引号**。加上引号后,Spring 会把 `"nacos:gulimall-coupon"` 当作字面量(包含引号本身),导致解析出错。 这会导致实际导入的 location 是: ``` "nacos:gulimall-coupon" ← 包含了双引号! ``` 而不是: ``` nacos:gulimall-coupon ``` 从而引发类似以下异常: ``` Unable to load config data from '"nacos:gulimall-coupon"' ``` --- ### ✅ 正确写法(去掉双引号): ```properties spring.config.import=nacos:${spring.application.name} ``` 或者更安全地指定格式: ```properties spring.config.import=nacos:${spring.application.name}.yaml ``` > 推荐带上 `.yaml` 扩展名,避免 Spring Boot 无法识别文件类型。 --- ## ❌ 问题二:没有设置 `file-extension`,可能导致配置加载失败 即使你写了 `gulimall-coupon.yaml`,如果未声明 `file-extension`,Nacos 客户端可能不知道以什么格式去解析配置。 ### ✅ 必须补充: ```properties spring.cloud.nacos.config.file-extension=yaml ``` 否则默认是 `properties` 格式,如果你在 Nacos 中配的是 YAML 格式,就无法正确读取! --- ## ✅ 正确的 `bootstrap.properties` 应该是: ```properties # 应用名称(对应 Nacos 中的 dataId) spring.application.name=gulimall-coupon # 显式导入 Nacos 配置源(注意:不要加引号!) spring.config.import=nacos:${spring.application.name}.yaml # Nacos 配置中心地址 spring.cloud.nacos.config.server-addr=127.0.0.1:8848 # 指定配置文件格式(必须!yaml 或 properties) spring.cloud.nacos.config.file-extension=yaml # 可选:命名空间(如使用 public 可不写,但建议明确) # spring.cloud.nacos.config.namespace=public # 可选:组名,默认 DEFAULT_GROUP # spring.cloud.nacos.config.group=DEFAULT_GROUP ``` --- ## 🔁 补充说明:为什么需要 `bootstrap.properties`? - 在 Spring Boot 2.4+ 之后,默认不再启用 `bootstrap` 上下文。 - 要想让 `bootstrap.properties/yml` 生效,**必须引入依赖**: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> ``` > ⚠️ 如果你没加这个依赖,上面的 `bootstrap.properties` **根本不会被加载**! --- ## ✅ 如何验证是否成功? 1. 确保 Nacos 正在运行: - 访问 [http://127.0.0.1:8848](http://127.0.0.1:8848) - 登录账号密码:`nacos/nacos` 2. 在 Nacos 控制台添加配置: - **Data ID**: `gulimall-coupon.yaml` - **Group**: `DEFAULT_GROUP` - **配置内容示例**: ```yaml coupon: user-register: 1001 welcome-amount: 10 ``` 3. 启动你的应用,查看日志是否有: ``` Located property source 'config-data-nacos:gulimall-coupon.yaml' ``` --- ## 🧪 常见错误对照表 | 错误现象 | 可能原因 | 解决方法 | |--------|---------|----------| | `endpoint is blank` | `server-addr` 没生效 | 检查是否拼写错误、是否被覆盖 | | `Unable to load config data from ...` | `import` 写法错误(带引号/无扩展名) | 去掉引号 + 加 `.yaml` | | 配置没加载 | `file-extension` 不匹配 | 设置为 `yaml` 或 `properties` | | `bootstrap.properties` 不生效 | 缺少 `spring-cloud-starter-bootstrap` | 添加该依赖 | --- ## ✅ 总结 你的原始配置主要问题是: > ❌ 多余的双引号导致 `spring.config.import` 解析失败 > ❌ 缺少 `file-extension` 导致无法识别 YAML 配置 --- ### ✅ 最终推荐配置(`bootstrap.properties`) ```properties spring.application.name=gulimall-coupon spring.config.import=nacos:${spring.application.name}.yaml spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.file-extension=yaml ``` ✅ 并确保引入了: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值