1,profiles方式
spring.profiles.active=
2,jvm 参数配置
-Dspring.profiles.active=dev
3,java -jar xxx.jar --spring.profiles.active=dev
Spring Boot支持多环境配置,允许你为不同的运行环境(如开发、测试和生产环境)定义不同的配置。以下是一些常见的环境切换和生效方式:
1. **配置文件**:
- 使用不同的配置文件,如`application-dev.properties`、`application-test.properties`和`application-prod.properties`,根据激活的配置文件来加载相应的配置。
2. **激活配置文件**:
- 使用`spring.profiles.active`来激活特定的配置文件。你可以在环境变量、系统属性或命令行参数中设置这个属性:
```sh
java -jar -Dspring.profiles.active=dev your-app.jar
```
3. **命令行参数**:
- 通过命令行参数直接设置配置属性,这些参数将覆盖配置文件中的设置:
```sh
java -jar -Dmyapp.timeout=30 your-app.jar
```
4. **环境变量**:
- 使用环境变量来设置配置属性,Spring Boot会自动将它们作为配置属性的值。
5. **系统属性**:
- 通过系统属性设置配置,可以使用`-D`参数在命令行中设置:
```sh
java -Dmyapp.timeout=30 -jar your-app.jar
```
6. **配置中心**:
- 使用配置中心(如Spring Cloud Config)来集中管理不同环境下的配置。
7. **`application.properties`或`application.yml`**:
- 在`application.properties`或`application.yml`文件中使用占位符,这些占位符可以在运行时被环境特定的值替换。
8. **`spring.config.location`**:
- 使用`spring.config.location`指定一个外部的配置文件或目录,这个配置可以在启动时通过命令行参数指定:
```sh
java -jar -Dspring.config.location=file:/path/to/application.properties your-app.jar
```
9. **`spring.config.name`**:
- 使用`spring.config.name`指定配置文件的基本名称(不包含后缀),这允许Spring Boot查找特定名称的配置文件。
10. **`@PropertySource`注解**:
- 在配置类上使用`@PropertySource`注解来指定额外的配置文件。
11. **配置覆盖**:
- 理解Spring Boot的配置覆盖顺序,知道命令行参数具有最高优先级,其次是系统属性、环境变量等。
12. **自定义配置**:
- 在`@Configuration`类中使用`@Conditional`注解来根据不同的环境条件加载不同的配置。
通过上述方法,你可以灵活地在不同环境之间切换Spring Boot应用的配置,确保应用程序的行为符合当前运行环境的需求。在实际开发中,通常建议使用配置文件和环境变量的组合来管理不同环境下的配置。