2024-05-25
温故知新
00
请注意,本文编写于 105 天前,最后修改于 105 天前,其中某些信息可能已经过时。

目录

简介
主要用法
示例
代码
Yaml配置
输出(启动项目,控制台输出)
总结
注意
赞助请求V3

简介

  • @Value是Spring框架的一个注解。
  • @Value常用来读取配置文件中的特定配置的。

主要用法

  1. 单纯获取yaml中配置的某个字段
  2. 获取yaml中字段并与指定字符拼接
  3. 获取yaml中的两个字段拼接
  4. 获取yaml中的一个字段Value,作为获取yaml中另一个字段的Key
  5. 获取yaml中的字段并进行一定逻辑处理,如:按照“.”分割字符串

其中,第一个用法是最常用的,其他用法不常用,但作为程序员,我认为我们有必要了解,让我们知道有这种用法,在某些奇怪的需求出现时,能想到还有这种用法能帮助我们便捷开发,这是我们程序员进阶的必备能力!

示例

代码

java
@Component public class Test { // 最简单的用法 // @Value("${test.db-url}") // private String url; // 基础嵌套 @Value("${test.${test.prefix}url:127.0.0.1}") private String url; // 基础嵌套 @Value("${test.${test.prefix}port}") private String port; // 并列连接 // @Value("#{'${test.db-url:127.0.0.1}:${test.db-port:8080}'}") @Value("${test.db-url:127.0.0.1}:${test.db-port:8080}") private String hostPort; // 高级嵌套 @Value("${test.db-url:127.0.0.1:${test.db-port:8080}}") private String hostPort2; // 更高级嵌套 @Value("#{'${test.db-url:127.0.0.1}'.split('\\.')}") private String[] number; @PostConstruct public void run() { System.out.println(url); System.out.println(port); System.out.println(hostPort); System.out.println(hostPort2); System.out.println(Arrays.asList(number)); } }

Yaml配置

  • application.yml
yml
test: # db-url: 192.168.0.1 db-port: 9527 prefix: db-

输出(启动项目,控制台输出)

  • 注释掉yml中的db-url
127.0.0.1 9527 127.0.0.1:9527 127.0.0.1:9527 [127, 0, 0, 1]
  • 不注释掉yml中的db-url
192.168.0.1 9527 192.168.0.1:9527 192.168.0.1 [192, 168, 0, 1]

总结

  • ${}可以嵌套使用
  • ${}可以并列使用
  • #{}内可以使用SpEl表达式,使用一些简单的Java方法。
  • #{}内可以使用${},但是需要用引号括起来,可以使用单引号'${abc}'或双引号\"${abc}\"
  • 根据给出的几个例子,一定可以组合出其他的不常见的用法,可以自行探索。

注意

  • 另外注意代码中的hostPorthostPort2,在注释掉在yml中的db-url时,看起来效果是一样的,但没注释掉yml中的db-url时,输出的结果hostPort2后边的${}没生效,说明后一个${}是在前一个test.db-url没读取到时,才与默认值一起附加使用的。

赞助请求V3

建站因为热爱,生活需要Money,请屏幕前的大佬动动您发财的小手,点击一次以示鼓励,祝您生活愉快!

PS:就目前的访问量,即便每个访客都点一次广告,收入也不足以支付运营成本。如果看不到广告,可能是网络原因或被拦截了,那就算了吧。再次祝您生活愉快~~

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!