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

springboot读取自定义配置

springboot读取自定义配置

application.yml自定义配置

my-app:ip1:#dmz1 ftp服务器ipAddress: 172.12.23.456port: 21username: adminpassword: adminip2:ipAddress: 172.12.23.457port: 21username: adminpassword: admin

方式1,@Value注解

@Component
public class IpConfig {@Value("${my-app.ip1.ipAddress}")public String ipAddress1;@Value("${my-app.ip1.port}")public Integer port1;@Value("${my-app.ip1.username}")public String username1;@Value("${my-app.ip1.password}")public String password1;@Value("${my-app.ip2.ipAddress}")public String ipAddress2;@Value("${my-app.ip2.port}")public Integer port2;@Value("${my-app.ip2.username}")public String username2;@Value("${my-app.ip2.password}")public String password2;
}

测试取值

@Component
public class TaskConfiguration {private final IpConfig ipConfig;@AutowiredTaskConfiguration(IpConfig ipConfig) {this.ipConfig= ipConfig;}@PostConstructpublic void task1() {//172.12.23.456String ipAddress1 = ipConfig.getIpAddress1();}

方式2,@ConfigurationProperties(prefix = “my-app”)注解

@Component
@ConfigurationProperties(prefix = "my-app")
@Data
public class MyApp {private Ip1 ip1;private Ip2 ip2;@Datapublic static class Ip1 {private String ipAddress;private int port;private String username;private String password;}@Datapublic static class Ip2 {private String ipAddress;private int port;private String username;private String password;}
}

测试@ConfigurationProperties注解取值

@Component
public class TaskConfiguration {private final String ipAddress1;private final String ipAddress2;@AutowiredTaskConfiguration(MyApp myApp) {this.ipAddress1 = myApp.getIp1().getIpAddress();this.ipAddress2 = myApp.getIp2().getIpAddress();}@PostConstructpublic void task1() {System.out.println(ipAddress1);System.out.println(ipAddress2);}
}

参考文档

springboot类型安全的绑定(使用@ConfigurationProperties注解一次性拿到application.yml 配置文件中的多个属性值)

相关文章:

  • 2024年3月认证通用基础考试问答题及答案
  • Leetcode算法题
  • 低密度奇偶校验码LDPC(七)——SPA和积译码算法的简化
  • week06day01 mysql
  • Spring: spring中SSE的实现方式有哪些
  • 学习java第一天(下载并配置环境+写第一个java程序)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • Vue2:用node+express写一个轻量级的后端服务
  • 大唐杯学习笔记:Day5
  • Swing程序设计(11)动作事件监听器,焦点事件监听器
  • Docker Compose实战指南:让容器管理变得简单而强大
  • 集成2.5G/5G/10G高速率网络变压器的RJ45网口连接器产品特点介绍
  • 从零开始在kitti数据集上训练yolov5
  • AWS虚拟机迁移到Azure上的实战操作
  • Doris实战——银联商务实时数仓构建
  • es6(二):字符串的扩展
  • JavaScript设计模式之工厂模式
  • MaxCompute访问TableStore(OTS) 数据
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Redis字符串类型内部编码剖析
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • WebSocket使用
  • 大主子表关联的性能优化方法
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 跨域
  • 三分钟教你同步 Visual Studio Code 设置
  • 什么软件可以剪辑音乐?
  • 使用 Docker 部署 Spring Boot项目
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • #1015 : KMP算法
  • %check_box% in rails :coditions={:has_many , :through}
  • (C#)一个最简单的链表类
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)php投票系统 毕业设计 121500
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (一)WLAN定义和基本架构转
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .NET Micro Framework初体验
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net web项目 调用webService
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .net6使用Sejil可视化日志
  • .NET成年了,然后呢?
  • .Net中的集合
  • /*在DataTable中更新、删除数据*/
  • @AliasFor注解
  • @Conditional注解详解
  • @ConfigurationProperties注解对数据的自动封装
  • @ModelAttribute 注解
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [20140403]查询是否产生日志
  • [codevs] 1029 遍历问题