Directorio de artículos
Spring Boot usa un archivo de configuración global application.properties , que se coloca en el directorio src/main/resources o en /config en el classpath. La función del archivo de configuración global de SpringBoot es modificar los valores de configuración de algunas configuraciones predeterminadas y también permitir que los usuarios personalicen las propiedades de configuración.
application.yaml también es un tipo de archivo de configuración. La diferencia entre los dos archivos de configuración es que el formato de archivo de las propiedades de configuración es diferente.
Este blog usa application.properties para la configuración
Nota: Si no hay un archivo de configuración
application.properties
oapplication.yaml
un archivo en el proyecto, puede crear uno nuevo en la ruta del recurso
1. Propiedades de configuración
propiedades personalizadas
Muchas propiedades personalizadas application.properties
deben definirse en , como la configuración constante de la base de datos, la configuración del número de puerto predeterminado, etc. Además de estas constantes de configuración, también se permiten constantes personalizadas:
# applicatino.properties 中指定配置
com.atcjx.name=cuijiexiang
com.atcjx.password=123456
Agregue una anotación arriba de la variable miembro en el archivo de configuración que debe usarse @Value(“${path}”)
, y puede vincular el valor en la clase del archivo de configuración a la variable miembro:
@RestController
public class baseController {
@Value("${com.atcjx.name}")
private String name;
@Value("${com.atcjx.password")
private String password;
@RequestMapping("/")
String request(){
System.out.println("读取到的配置文件数据数据:");
System.out.println("用户名称:" + name);
System.out.println("密码:" + password);
return null;
}
}
Después de iniciar el proyecto localhost:8080/
, puede ver los siguientes resultados:
Si hay demasiados valores de atributo para inyectar, tomará mucho tiempo vincular uno por uno. Para vincular rápidamente una gran cantidad de atributos de configuración, se recomienda oficialmente usar @ConfigurationProprites(prefix = “...”)
anotaciones para especificar qué prefijo de atributo en el archivo de configuración a utilizar.
@Component
@ConfigurationProperties(prefix = "com.atcjx")
public class configBean {
private String name;
private String password;
// 省略get、set方法
}
Cabe señalar que @ConfigurationProperties
las anotaciones deben inyectarse en el contenedor IOC para su uso: con las anotaciones de clase de inyección Spring, por ejemplo @Component
, también es necesario agregar adiciones a la clase de entrada @EnableConfigurationProperties
.
// 开启允许配置文件配置属性
@EnableConfigurationProperties
@SpringBootApplication
public class SpringBootTestApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootTestApplication.class, args);
}
}
Use la inyección Spring donde necesite usar:
@RestController
public class baseController {
// 使用@AutoWired注入
@Autowired
configBean configBean;
@RequestMapping("/")
String request(){
System.out.println("读取到的配置文件数据数据:");
System.out.println("用户名称:" + configBean.getName());
System.out.println("密码:" + configBean.getPassword());
return "";
}
}
Acceso localhost:8080/
: leído con éxito!
propiedad de valor aleatorio
En muchos casos, el valor aleatorio también es una parte importante de la configuración.Si la generación del valor aleatorio se incluye en el código, el código será inflado y difícil de entender. Los archivos de configuración de SpringBoot nos ayudan a resolver este problema. El uso ${random}
puede generar aleatoriamente diferentes tipos de valores, como: int, long, tipo de cadena.
dudu.secret=${random.value}
dudu.number=${random.int}
dudu.bignumber=${random.long}
dudu.uuid=${random.uuid}
dudu.number.less.than.ten=${random.int(10)}
dudu.number.in.range=${random.int[1024,65536]}
2. Archivo de configuración
Prioridad de perfil
Ordenar por prioridad descendente :
- ruta de archivo:/config/applicaiton.properties
- ruta del archivo:/aplicación.propiedades
- classpath:/config/applicaiton.properties
- classpath:/aplicación.propiedades
Las ubicaciones son las siguientes:
Los perfiles de mayor prioridad pueden anular los perfiles de menor prioridad.
Comparando los archivos application.properties y application.yml en la misma ruta, ¡la prioridad de configuración de application.properties será mayor!
Configuración multientorno
En muchos casos, las aplicaciones deben implementarse en diferentes entornos de tiempo de ejecución, lo que conduce a diferentes detalles de configuración del entorno. Tome el registro como ejemplo, el registro de producción establecerá el nivel de registro en WARN
o superior, y el registro debe escribirse en el archivo de registro para facilitar el mantenimiento y la gestión de la operación y el mantenimiento; el nivel de registro solo necesita DEBUG
el nivel durante el desarrollo , y el registro se envía a la consola Tal vez sea una buena opción.
Si cada vez que publica, tiene que eliminar o reemplazar el archivo de configuración, causará problemas innecesarios. SpringBoot nos proporciona una configuración multientorno para resolver este problema.
Antes de configurar varios entornos, debe comprender que el nombre del archivo de configuración en diferentes entornos es diferente. El nombre del archivo de configuración en diferentes entornos comienza con la aplicación, seguido de "-{profile}" para especificar el entorno correspondiente, por ejemplo:
- application-dev.properties: archivo de configuración del entorno de desarrollo
- application-prod.properties: archivo de configuración del entorno de producción
Los nombres se pueden definir por sí mismos, principalmente para distinguir diferentes entornos. Ahora podemos iniciar la configuración multientorno.
Paso 1: Cree un archivo de configuración de entorno receptivo
Cree archivos de configuración para tres entornos, a saber, entorno de desarrollo, entorno de prueba y entorno de producción:
Paso 2: agregue el entorno predeterminado
Si no se ha especificado el entorno predeterminado, SpringBoot cargará application.properties de forma predeterminada.Si necesita cambiar el entorno, debe especificar el archivo de configuración del entorno de desarrollo en application.properties :
spring.profiles.active=dev
Esto significa que cuando se inicie SpringBoot, cargue el archivo de configuración application-dev.properties , ¡asegúrese de prestar atención al nombre del archivo correspondiente!
¡Ya hemos completado la configuración multientorno!
Reponer
Si el proyecto ha sido empaquetado, cambiar el entorno necesita usar el comando de línea de comando para lograr:
# 设置启动环境为 dev
java -jar xxx.jar --spring.profiles.active=dev