关于动态配置读取
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece comparando DynamicPropertiesImpl e DynamicProperties.getStringProperty com o exemplo ProviderController; em seguida, rastreie como as alterações em Environment são propagadas e como EventManager publica ConfigurationChangedEvent. Reproduza o comportamento com o exemplo BMI e documente a configuração necessária ou identifique o caminho de atualização ausente para que tanto dynamicProperties quanto environment reflitam um valor alterado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
我注意到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 都读不到变化。
- Linguagem predominante
- Java
- Estrelas
- 1.9k
- Forks
- 813
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de apache/servicecomb-java-chassis
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
apache/servicecomb-java-chassis#5106 ·
-
question
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
apache/servicecomb-java-chassis#5153 · 1 comentário ·
-
[QUESTION] - 请发布3.x的最新版本Abertaquestion
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
apache/servicecomb-java-chassis#5146 ·
-
[FEATURE] - When will ServiceComb support Spring Boot 4.x, Spring Framework 7.x, and Jackson 3.x?Abertaenhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
apache/servicecomb-java-chassis#5145 ·
-
[BUG] - The latest instance information cannot be obtained when cache instances is empty.Talvez livre de novo @chengyouling assumiu há 153 dias e não há nenhum pull request aberto. Aberta2.x bug
apache/servicecomb-java-chassis#5141 · 1 responsável ·
Todas as issues de apache/servicecomb-java-chassis
Issues semelhantes
-
[Bug] dubbo.protocol.triple.max-message-size is only read from OS environment variablesTalvez já em andamento @CCCLL assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
hierynomus/sshj#1070 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
intellij-elixir/intellij-elixir#4492 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
-
[Server] OpenAPI 3.1 YAML specs generate Object fields: resolveToJSON drops every schema typeAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
quarkiverse/quarkus-openapi-generator#1796 · 1 comentário ·