Implementación de una Fuente de Configuración Personalizada
Esta guía muestra cómo crear un custom ConfigurableValueSource cargar valores de variables dinámicas desde fuentes distintas a HOCON files or DPS.
Descripción general
Las fuentes de configuración personalizadas le permiten cargar valores de variables dinámicas desde:
-
Bases de datos
-
Servicios de configuración remota (Consul, etcd, AWS Parameter Store)
-
Variables de entorno
-
Formatos de archivo personalizados
-
Cualquier otra fuente externa
Requisitos previos
-
El
ipf-studio-configuration-coredependencia -
Spring Boot aplicación
-
Comprensión de la
ConfigurableValueSourceinterfaz
Pasos
1. Agregar Core Dependencia
<dependency>
<groupId>com.iconsolutions.dsl.studio</groupId>
<artifactId>ipf-studio-configuration-core</artifactId>
<version>${ipf-studio-configuration.version}</version>
</dependency>
2. Implementar ConfigurableValueSource
Cree una clase que implemente el ConfigurableValueSource interfaz:
import com.iconsolutions.dsl.studio.configurablevalues.ConfigurableValue;
import com.iconsolutions.dsl.studio.configurablevalues.ConfigurableValueSource;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class DatabaseConfigurableValueSource implements ConfigurableValueSource {
private final DynamicConfigRepository repository;
public DatabaseConfigurableValueSource(DynamicConfigRepository repository) {
this.repository = repository;
}
@Override
public String getName() {
return "database";
}
@Override
public Integer getPrecedence() {
return 15; // Higher than HOCON (5) and default dynamic settings (10)
}
@Override
public List<ConfigurableValue> getValues() {
return repository.findAll().stream()
.map(entity -> new ConfigurableValue(
entity.getKey(),
entity.getValue()
))
.collect(Collectors.toList());
}
}
3. Comprenda la Precedencia
La precedencia determina el orden en el que se procesan las fuentes. Esto solo se aplica al inicio, una vez que la aplicación está en funcionamiento, las actualizaciones a la DynamicExpressionRegistry será aplicado sin considerar los niveles de precedencia. Los valores más altos anulan los valores más bajos:
| Fuente | Precedencia | Efecto |
|---|---|---|
Archivos HOCON |
5 |
Valores base procesados |
Dynamic Settings |
10 |
Puede anular HOCON |
Su Fuente Personalizada |
15 |
Anula ambos anteriores |
Elija su precedencia en función de dónde se ajuste su fuente en la jerarquía de anulación.