关于动态配置读取
还没有人认领这个 Issue。
评估
调研方向
首先将 DynamicPropertiesImpl 和 DynamicProperties.getStringProperty 与 ProviderController 示例进行比较,然后跟踪 Environment 的更改是如何传播的,以及 EventManager 如何发布 ConfigurationChangedEvent。使用 BMI 示例重现该行为,并记录所需的配置,或找出缺失的更新路径,以便 dynamicProperties 和 environment 都能反映已更改的值。
由索引模型根据 Issue 内容生成。
描述
我注意到3.x版本把原本完全使用archaius API读取配置的部分全部换掉了,在DynamicPropertiesImpl中通过Environment来读取配置,这是为什么,为了更接入Spring原生的操作吗?
然后我按照文档在程序中读取配置信息试了下,使用dynamicProperties.getStringProperty()无法读到配置的变化,然后我看了下[servicecomb-java-chassis](https://github.com/apache/servicecomb-java-chassis)的测试:
HashMap<String, Object> updated = new HashMap<>();
updated.put(stringPropertyName, newValue);
EventManager.post(ConfigurationChangedEvent.createIncremental(updated));
运行没有问题,但是按照文档那样以非mock的方式测试就读不到配置的变化,请问是有什么遗漏的额外配置吗?
我测试时用的是基于开发第一个微服务应用里 bmi 那个示例改写的。
@RestSchema(schemaId = "ProviderController")
@RequestMapping(path = "/provider")
public class ProviderController {
private DynamicProperties dynamicProperties;
@Autowired
private Environment environment;
private String example;
@Autowired
public ProviderController(DynamicProperties dynamicProperties) {
this.dynamicProperties = dynamicProperties;
// 在构造函数中注册回调,这样配置变化时会自动更新 example 值
this.example = this.dynamicProperties.getStringProperty("basic.example",
value -> {
System.out.println("Configuration changed, new value: " + value);
this.example = value;
}, "not set");
}
@GetMapping(path = "/example")
public String getExampleValue() {
String dynamicValue = dynamicProperties.getStringProperty("basic.example", "not set");
String envValue = environment.getProperty("basic.example", "not set");
System.out.println("Dynamic value: " + dynamicValue);
System.out.println("Environment value: " + envValue);
return example;
}
}
不管是用 dynamicProperties 还是 environment 都读不到变化。
- 主要语言
- Java
- 星标
- 1.9k
- 派生
- 813
- 平均合并
- 8 天 23 小时
- 30 天内合并 PR
- 1
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/servicecomb-java-chassis 的其他 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 65/100
apache/servicecomb-java-chassis#5106 ·
-
question
难度 5/5 一周以上 新手友好度 35/100
apache/servicecomb-java-chassis#5153 · 1 条评论 ·
-
question
难度 4/5 3-5 天 新手友好度 25/100
apache/servicecomb-java-chassis#5146 ·
-
[FEATURE] - When will ServiceComb support Spring Boot 4.x, Spring Framework 7.x, and Jackson 3.x? 未关闭enhancement
难度 5/5 一周以上 新手友好度 25/100
apache/servicecomb-java-chassis#5145 ·
-
2.x bug
apache/servicecomb-java-chassis#5141 · 已指派 1 人 ·
查看 apache/servicecomb-java-chassis 的全部 Issue
相似的 Issue
-
area-deployment area-integrations triage:bot-seen
难度 2/5 半天 新手友好度 86/100
-
难度 2/5 1-3 小时 新手友好度 75/100
apache/flink-agents#1156 ·
-
area/connectors autoteam community connectors/source/shopify needs-triage team/use type/bug
难度 2/5 1-3 小时 新手友好度 84/100
-
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 1/5 1 小时以内 新手友好度 85/100