Cómo leer las propiedades externas basadas en el valor de la variable local en la primavera de arranque?

user5245796:

Digamos que tengo las siguientes propiedades en mis application.properties

url.2019=http://example.com/2019
url.2020=http://example.com/2020

Y tengo este método,

public String getUrl(String year) {

    String url;

    // here I want to read the property value based on the value of year
    // if year is "2019", I want to get the value of ${url.2019}
    // if year is "2020", I want to get the value of ${url.2020}
    // something like #{url.#{year}} ??

    return url;
}

¿Cuál es la mejor manera de lograr esto?

Gracias.

Shailesh Chandra:

Podría haber varias maneras de lograr esto

Si sus propiedades no son gestionados por la primavera

https://www.baeldung.com/inject-properties-value-non-spring-class

Si es administrado por la primavera

1.) se puede definir un mapa en application.properies, se puede inyectar el mapa en su código de lectura que sea propiedad que desea

2) se puede inyectar variable de entorno y leer la propiedad de la demanda

@Autowired 
private Environment environment;

public String getUrl(String year) {

    String url = "url." + year ;

    String value =environment.getProperty(url);

    return url;
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=334865&siteId=1
Recomendado
Clasificación