springboot yml属性注入

环境配置

<!-- 生成MATA-INF元数据,用户提供IDEA自动提示配置文件的输入 -->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-configuration-processor</artifactId>
   <optional>true</optional>
</dependency>

打开注解开关
在这里插入图片描述

使用

属性类编写

@Data
@ToString
@Component
@ConfigurationProperties(prefix = "config")
public class Config {

    private int serverPort;

    private String localCachePath;

    private List<String> whiteList;

    private List<String> blackList;

    private Date expireDate;

    private Map<String,String> parameterMap;

    private Map<String,String> backupsMap;

    private Address address;

    private List<Address> addressList;

    private String desc;

    private String key;

    private int secret;

    private int timeOut;

    private long randomKey;
}
@Data
//@AllArgsConstructor  这里一定不能使用这个全参数构造函数注解,否则无法正常树形输入
public class Address {
   private String provinceCode;
   private String provinceName;
}

配置文件编写

config:
  server-port: 10800

  local-cache-path: E\

  white-list: [117.25.168.59, 153.12.86.21]

  black-list:
    - 177.26.28.49
    - 214.56.98.12

  expire-date: 2025/12/31

  parameter-map: [environment: 测试,maxConnectCount: 12000]

  backups-map:
    - backupPath: F\
    - backupRetryCount: 3

  address:
    provinceCode: 130000
    provinceName: 河北省

  address-list:
    - {provinceCode: 130000, provinceName: 河北省}
    
  desc: 服务器在${config.address.provinceName}

  key: ${random.value}

  secret: ${random.int}

  time-out: ${random.int[15]}

  random-key: ${random.long(100000, 10000000)}

测试

@Autowired
Config config;

@Test
void valueInject() {
    System.out.println(config.toString());
}

输出日志

Config(
serverPort=10800, 
localCachePath=E\, 
whiteList=[117.25.168.59, 153.12.86.21], 
blackList=[177.26.28.49, 214.56.98.12], 
expireDate=Wed Dec 31 00:00:00 CST 2025, 
parameterMap={0.environment=测试, 1.maxConnectCount=12000}, 
backupsMap={0.backupPath=F\, 1.backupRetryCount=3}, 
address=Address{provinceCode='130000', provinceName='河北省',}, 
addressList=[Address(provinceCode='130000', provinceName='河北省')],
desc=服务器在河北省, 
key=cf573fb0e9a119f4fb9c447ea870fcf8, 
secret=-949551574,
 timeOut=9, 
 randomKey=864964
 )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值