Utilice @Value en SpringBoot para obtener la configuración del mapa en el archivo de configuración

fondo

En el proyecto springboot, use el archivo de configuración application.properties, luego debe configurar una configuración de tipo de mapa y luego obtener esta configuración en otra parte del programa.

contenido de configuración

fyk.db-script.check-sql.[1-FYK_PROPERTIES-DQL]=select case when exists(select 1 from all_tables t where t.TABLE_NAME = upper('fyk_properties')) then 1 else 0 end as result from dual
fyk.db-script.check-sql.[2-FYK_PROPERTIES-DML-fyk-oauth]=select case when exists(select 1 from fyk_properties t where t.application='fyk-oauth') then 1 else 0 end as result from dual

Nota : Si la clave del tipo Mapa contiene caracteres no alfanuméricos y -, debe estar entre []; de lo contrario, no es necesario utilizar corchetes.

Consíguelo en forma de clase de configuración.

Cree una clase de configuración:

@Data
@ConfigurationProperties(prefix = "fyk.db-script")
public class CheckSqlProperties {
    
    
    private Map<String, String> checkSql;
}

En este punto del código de depuración, puede ver que se ha obtenido el valor configurado:
inserte la descripción de la imagen aquíSin embargo, si el método anterior para obtener la configuración se cambia al formato @Value:

    @Value("${fyk.db-script.check-sql}")
    private Map<String, String> checkSql;

En este punto, el proyecto no se puede iniciar, lo que indica que no se puede encontrar la configuración. No sé si pasa algo, si alguien lo sabe, ¡por favor deme algún consejo! ! !

Utilice @Value para obtener

Para utilizar el método de @Value, primero, en el archivo de configuración, es necesario cambiar el método de configuración, de la siguiente manera:

fyk.db-script.check-sql={\
  "1-FYK_PROPERTIES-DQL":"select case when exists(select 1 from all_tables t where t.TABLE_NAME = upper('fyk_properties')) then 1 else 0 end as result from dual",\
  "2-FYK_PROPERTIES-DML-fyk-oauth":"select case when exists(select 1 from fyk_properties t where t.application='fyk-oauth') then 1 else 0 end as result from dual"\
  }

Nota : Si la clave del tipo Mapa contiene caracteres no alfanuméricos y -, debe estar entre comillas; de lo contrario, no es necesario usar comillas (se recomienda usar comillas superiores); valores de valor debe ir entre comillas.

Cuando se utilice esta configuración, utilice @Value para obtener:

    @Value("#{${fyk.db-script.check-sql}}")
    private Map<String, String> checkSql;

En este momento, depure el código y podrá ver que se obtiene el valor configurado:
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/fyk844645164/article/details/107897873
Recomendado
Clasificación