Spring 配置文件中的占位符${}和@{}的区别

在Spring Boot的配置文件(通常是application.properties或application.yml),@{}和${}都是用来引用属性值的占位符。它们的区别在于:

${}占位符:${}占位符是Spring框架中的一种常用占位符语法,用于引用配置文件中的属性值。这些属性值可以来自于不同的配置源,如系统环境变量、JVM系统属性、配置文件中的属性等。${}占位符是通过Spring的PropertyPlaceholderConfigurer或PropertySourcesPlaceholderConfigurer进行解析和替换的。示例:server.port=${app.port}。

@{}占位符:@{}占位符是Spring Boot中新增的一种占位符语法,用于引用配置文件中的属性值。它主要用于解决${}占位符无法直接引用带有特殊字符(如冒号、等号)的属性名的问题。@{}占位符会将属性名部分视为普通字符串,而不会将其视为占位符的一部分。示例:server.port=@{app.port}。

总结来说,${}占位符是Spring框架的标准占位符语法,适用于大多数情况。而@{}占位符是Spring Boot的扩展占位符语法,用于处理一些特殊情况下的属性引用。在普通情况下,推荐使用${}占位符。只有当遇到无法使用${}占位符引用特定属性名时,可以考虑使用@{}占位符。

posted @ 2023-06-05 10:42  镇魂帆-张  阅读(1558)  评论(0编辑  收藏  举报