当前位置: 首页 > news >正文

Spring Boot 自定义属性

在这里插入图片描述

Spring Boot 自定义属性

Spring Boot 应用程序中,application.yml 是一个常用的配置文件格式。它允许我们以层次化的方式组织配置信息,并且比传统的 .properties 文件更加直观。

本文将介绍如何在 Spring Boot 中读取和使用 application.yml 中的配置信息,下面我将分别使用两种方式进行介绍

@Value

如果你只需要读取单个配置项,可以使用 @Value 注解。比如获取程序的端口号:

server:port: 9999
@Slf4j
@SpringBootTest
class SpringAppApplicationTests {@Value("${server.port}")private String port;@Testpublic void test() {log.info("端口号:{}", port);}
}

还可以对属性设置默认值,当这个属性不存在时则读取

@Value("${server.port:8888}")
private String port;

@ConfigurationProperties

然而如果是多个或复杂的配置项,那么使用 @ConfigurationProperties 会是更好的选择。

user:username: "admin"#  password: "123123"
@Data
@Component
@ConfigurationProperties(prefix = "user") // 设置属性前缀
public class UserProperties {private String username;private String password = "123456"; // 设置默认值
}
@Slf4j
@SpringBootTest
class SpringAppApplicationTests {@Resourceprivate UserProperties userProperties;@Testpublic void test() {log.info("用户名:{}", userProperties.getUsername());log.info("密码:{}", userProperties.getPassword());}
}

对于复杂属性的可以这么做

user:name: "宇阳"age: 22birthday: "2002-10-11"vip: truehobbyList:- "敲代码"- "写代码"- "打游戏"ageArray:- 18- 19- 20propList:- username: "张三"password: "18"age: 18birthday: "1990-01-01"- username: "李四"password: "18"
@Data
@Component
@ConfigurationProperties(prefix = "user")
public class UserProperties {private String name;private Integer age;@DateTimeFormat(pattern = "yyyy-MM-dd")private Date birthday;private Boolean vip;private List<String> hobbyList;private List<Integer> ageArray;private List<UserProperties> propList;
}

总结

对于简单的配置,使用 @Value 是一个快速的办法。而@ConfigurationProperties则适用于复杂的配置结构

http://www.lryc.cn/news/527164.html

相关文章:

  • C++ list 容器用法
  • 《 C++ 点滴漫谈: 二十四 》深入 C++ 变量与类型的世界:高性能编程的根基
  • C语言初阶牛客网刷题—— HJ34 图片整理【难度:中等】
  • 小盒科技携手体验家,优化智能教育服务体验,打造在线教育新高度
  • 一个简单的自适应html5导航模板
  • HttpClient学习
  • 二级 二维数组3
  • 【PyTorch][chapter 29][李宏毅深度学习]Fine-tuning LLM
  • javascript-es6 (一)
  • 数据结构——二叉树——堆(1)
  • window保存好看的桌面壁纸
  • docker安装Redis:docker离线安装Redis、docker在线安装Redis、Redis镜像下载、Redis配置、Redis命令
  • 98.1 AI量化开发:长文本AI金融智能体(Qwen-Long)对金融研报大批量处理与智能分析的实战应用
  • 【自然语言处理(NLP)】长短期记忆网络(Long - Short Term Memory,LSTM)原理和代码实现(从零实现、Pytorch实现)
  • 八股学习 微服务篇
  • TCP协议:互联网数据传输的守护者
  • 协助工具-任意门导航
  • 【MCAL实战】MCU模块配置实践
  • OpenAI 发布首个 AI 智能体
  • 【Python】导入类
  • Deepseek实现本地电影文件批量重命名为infuse格式,可匹配IMDB
  • Nginx部署的前端项目刷新404问题
  • Boot 系统选择U启动
  • XSLT 编辑 XML:深度解析与实际应用
  • 项目文章 | PNAS 斑马鱼转录因子ChIP-seq助力解析GATA6突变相关的肝脏疾病机制
  • easyexcel-导入(读取)(read)-示例及核心部件
  • 作业day3
  • 第五节 MATLAB命令
  • Oracle 普通用户连接hang住处理方法
  • 理解C++中的右值引用