springboot读取yml文件注解
时间: 2025-02-25 13:09:21 浏览: 72
### Spring Boot 使用注解读取 YML 文件
在 Spring Boot 应用程序中,可以利用 `@Value` 和自定义配置类配合 `@ConfigurationProperties` 注解来读取 YAML 配置文件的内容。
#### 利用 @Value 注解读取单个属性
对于简单的场景可以直接采用 `@Value` 来获取特定键对应的值:
```java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class SimpleConfigReader {
@Value("${app.name}")
private String appName;
public void printAppName() {
System.out.println("Application Name is : " + appName);
}
}
```
此方法适用于少量配置项的情况[^1]。
#### 使用 @ConfigurationProperties 绑定复杂对象
当有多个相关联的设置时推荐创建专门的数据结构并标注为 `@ConfigurationProperties` 类型以便批量注入:
首先,在实体类上加上必要的元数据声明:
```java
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "wx.template")
public class WxTemplateProperties {
private String appId;
private String appSecret;
// getters and setters...
}
```
接着可以在服务层自动装配该实例从而访问其内部字段:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class WeChatService {
private final WxTemplateProperties wxTemplateProperties;
@Autowired
public WeChatService(WxTemplateProperties wxTemplateProperties) {
this.wxTemplateProperties = wxTemplateProperties;
}
public void showWechatInfo(){
System.out.printf("App ID:%s, App Secret:%s%n",
wxTemplateProperties.getAppId(),
wxTemplateProperties.getAppSecret());
}
}
```
这种方式不仅简化了代码逻辑而且提高了可维护性和扩展性[^3]。
为了确保安全性和灵活性,还可以考虑集成第三方库如 Jasypt 对敏感信息进行加密处理后再存入配置文件内[^2]。
阅读全文
相关推荐


















