关于动态配置读取
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginnen Sie mit dem Vergleich von DynamicPropertiesImpl und DynamicProperties.getStringProperty mit dem Beispiel ProviderController. Verfolgen Sie anschließend, wie Änderungen an Environment weitergegeben werden und wie EventManager ConfigurationChangedEvent auslöst. Reproduzieren Sie das Verhalten mit dem BMI-Beispiel und dokumentieren Sie die erforderliche Konfiguration oder ermitteln Sie den fehlenden Aktualisierungspfad, damit sowohl dynamicProperties als auch environment einen geänderten Wert widerspiegeln.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
我注意到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 都读不到变化。
- Vorherrschende Sprache
- Java
- Sterne
- 1.9k
- Forks
- 813
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus apache/servicecomb-java-chassis
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
apache/servicecomb-java-chassis#5106 ·
-
question
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
apache/servicecomb-java-chassis#5153 · 1 Kommentar ·
-
[QUESTION] - 请发布3.x的最新版本Offenquestion
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
apache/servicecomb-java-chassis#5146 ·
-
[FEATURE] - When will ServiceComb support Spring Boot 4.x, Spring Framework 7.x, and Jackson 3.x?Offenenhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
apache/servicecomb-java-chassis#5145 ·
-
[BUG] - The latest instance information cannot be obtained when cache instances is empty.Evtl. wieder frei @chengyouling hat das vor 149 Tagen übernommen, und es ist kein Pull Request offen. Offen2.x bug
apache/servicecomb-java-chassis#5141 · 1 zugewiesene Person ·
Alle Issues in apache/servicecomb-java-chassis
Ähnliche Issues
-
agent-java community triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
elastic/apm-agent-java#4594 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area/plugin good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
kestra-io/plugin-soda#137 ·
-
area/plugin good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
kestra-io/plugin-aws#816 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
area/plugin good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
kestra-io/plugin-kestra#200 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug untriaged
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 92/100
opensearch-project/search-relevance#618 ·
Maintainer antworten meist innerhalb von 3 Tagen