使用SpringBoot加Enviroment类和注解读取配置文件中的数据,使用profile实现springboot开发环境、测试环境、生产环境的切换,要有实现过程和代码:
时间: 2024-02-15 21:02:27 浏览: 75
Unity Trees Grass & Rocks Enviroment Pack v1.0
好的,以下是使用 Spring Boot 加 Environment 类和注解读取配置文件中的数据,以及使用 profile 实现环境切换的实现过程和代码:
1. 在 application.yml 配置文件中定义不同环境的配置信息:
```yml
# 开发环境
spring:
profiles: dev
db:
host: localhost
port: 3306
username: root
password: dev123
# 测试环境
---
spring:
profiles: test
db:
host: localhost
port: 3306
username: root
password: test123
# 生产环境
---
spring:
profiles: prod
db:
host: localhost
port: 3306
username: root
password: prod123
```
2. 在代码中使用 Environment 类和注解读取配置信息:
```java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
@Configuration
@PropertySource("classpath:application.yml") // 指定配置文件路径
public class Config {
@Value("${db.host}")
private String dbHost;
@Value("${db.port}")
private int dbPort;
@Value("${db.username}")
private String dbUsername;
@Value("${db.password}")
private String dbPassword;
private final Environment environment;
public Config(Environment environment) {
this.environment = environment;
}
public void getConfig() {
System.out.println("dbHost: " + dbHost);
System.out.println("dbPort: " + dbPort);
System.out.println("dbUsername: " + dbUsername);
System.out.println("dbPassword: " + dbPassword);
// 读取 profile 信息
System.out.println("Active Profiles: " + environment.getActiveProfiles()[0]);
}
}
```
3. 在不同的环境中切换,可以通过在启动时指定 active profile 来实现:
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
// 开发环境
app.setAdditionalProfiles("dev");
// 测试环境
// app.setAdditionalProfiles("test");
// 生产环境
// app.setAdditionalProfiles("prod");
app.run(args);
}
}
```
这样,在不同的环境中启动应用时,会加载对应的配置信息,以及打印出 active profile 的信息。
阅读全文