文章目录
一、配置文件
Spring Boot支持多种配置文件格式,包括properties和YAML。可以根据项目需求选择合适的格式。
1. properties配置
1.1 创建配置文件
在src/main/resources目录下创建一个application.properties
文件(如果没有则新建)。这是Spring Boot默认读取的配置文件名。
1.2 添加配置项
# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=password
1.3 在应用中使用配置项
通过@Value
注解或@ConfigurationProperties
注解将配置值注入到Spring Bean中:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class DatabaseConfig {
@Value("${spring.datasource.url}")
private String dbUrl;
@Value("${spring.datasource.username}")
private String dbUsername;
@Value("${spring.datasource.password}")
private String dbPassword;
// 省略getter和setter方法
}
1.4 多环境配置
可以根据不同的环境(如开发、测试、生产)创建不同的配置文件(如application-dev.properties
、application-test.properties
、application-prod.properties
),并在启动应用程序时通过spring.profiles.active
属性来指定使用的环境。
spring.profiles.active=dev
2. YAML配置
2.1 创建配置文件
创建一个application.yml
文件,YAML格式的配置文件更易读且支持复杂结构的配置。
2.2 添加配置项
# 数据库连接配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydatabase
username: root
password: password
2.3 在应用中使用配置项
与properties配置类似,通过@ConfigurationProperties
注解将配置值注入到Spring Bean中。
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "spring.datasource")
public class DatabaseConfig {
private String url;
private String username;
private String password;
// 省略getter和setter方法
}
2.4 多环境配置
同样支持多环境配置,可以使用spring.profiles.active
属性来指定不同的环境。
二、自定义配置类
除了使用@Value
和@ConfigurationProperties
注解外,还可以通过自定义配置类的方式来管理配置项。
1. 创建配置类
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "myapp")
public class MyAppConfig {
private String apiUrl;
private String apiKey;
// 省略getter和setter方法
}
2. 使用配置类
直接在需要使用的地方注入该配置类即可:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MyApiClient {
private final MyAppConfig appConfig;
@Autowired
public MyApiClient(MyAppConfig appConfig) {
this.appConfig = appConfig;
}
public void callApi() {
String apiUrl = appConfig.getApiUrl();
String apiKey = appConfig.getApiKey();
// 使用配置的API URL和API Key进行操作
}
}