在 Java 项目中读取 YML(YAML)配置文件有多种方式,尤其在使用 Spring Framework(包括 Spring Boot)时,更是提供了丰富的支持。以下是几种常见的方式来读取 YML 配置文件:
1. 使用 Spring Boot 的自动配置
Spring Boot 提供了对 YML 文件的自动化支持,这也是最常用的方式。
1.1 使用 @Value 注解读取配置
你可以使用 @Value 注解读取 YML 文件中的单个配置属性。
application.yml
app:name: MyApplicationdescription: This is a sample application.
Java类
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class AppConfig {@Value("${app.name}")private String appName;@Value("${app.description}")private String appDescription;// Getterspublic String getAppName() {return appName;}public String getAppDescription() {return appDescription;}
}
1.2 使用 @ConfigurationProperties 注解读取配置
对于复杂或结构化的配置,推荐使用 @ConfigurationProperties 注解。
application.yml
app:name: MyApplicationdescription: This is a sample application.server:port: 8080host: localhost
Java类
java复制代码import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "app")
public class AppConfig {
private String name;
private String description;
private Server server;
public static class Server {private int port;private String host;// Getters and Setterspublic int getPort() {return port;}public void setPort(int port) {this.port = port;}public String getHost() {return host;}public void setHost(String host) {this.host = host;}
}// Getters and Setters
public String getName() {return name;
}public void setName(String name) {this.name = name;}public String getDescription() {return description;
}public void setDescription(String description) {this.description = description;
}public Server getServer() {return server;
}public void setServer(Server server) {this.server = server;
}
}