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;
}