java中美元符号的作用_$美元符号在配置文件中的意义

$符号叫什么

$符号加上一个大括号,学术名称叫做 占位符 ,用来占住位置,让其它功能在某一个时间替换掉它,替换的来源一般是properties文件。

1${data}

通常在各种配置文件中会有三次替换过程

替换过程

操作者

状态

War包文件

pom.xml的Validate时期

Maven

静态

pom文件不会进入War包

Maven根据pom文件的Package时期

Maven

静态

War包中会被替换文本

Spring启动后的启动后

Spring

动态

不会被替换文本,运行时获取

关于这三次替换过程的具体应用,可以参考文章Maven通过Profile切换环境

Maven-Validate

在Maven中可以采用properties标签定义一些变量,然后使用占位符使用这些变量

1

2

3

4

5

6

7

8

9

10

11

12

4.1.9.RELEASE

org.springframework

spring-core

${spring.version}

例如控制dependency的版本,这些会在Validate的时候去取值,不会进入War包

Maven-Package

Maven可以通过Build选项中的filters来指定一些properties文件,来获取变量值

然后用获得值去替换resource下指定了filtering==true的文件中的占位符${}

1

2

3

4

5

6

7

8

9

10

11

12

psas

environment/local.properties

src/main/resources/

true

通常resources都是web层的Spring配置文件,例如 applicationContext.xml 或 spring-mvc.xml 等等 在Package后的War包中,${}会被替换掉,替换成propertes中对应的文本

Spring配置文件占位符

Spring可以通过 PropertiesFactoryBean 来加载配置文件,然后使用 PreferencesPlaceholderConfigurer 来进行替换

1

2

3

4

5

6

7

8

9

10

11

12

13

classpath:properties/jdbc.properties

classpath:properties/upload.properties

这个替换过程发生在Spring启动之后的运行时(Runtime),与上一步Maven-Package不同,在War包中的xml文件里${}符号仍在存在,由启动后的Spring去替换PropertiesFactoryBean加载的文本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java美元符号 `$` 有以下几个应用和意义: 1. 用于命名变量或标识符:在Java美元符号 `$` 可以用作变量或标识符的一部分,用于命名。例如: ```java int $variable = 10; String my$String = "Hello"; ``` 这里的 `$variable` 和 `my$String` 都是合法的变量名。 2. 内部类的命名:在Java,内部类的命名遵循一定的规则,其美元符号 `$` 用于分隔内部类和外部类的名称。例如: ```java public class OuterClass { public class InnerClass { // 内部类的定义 } } ``` 在这个例子,`OuterClass$InnerClass` 是内部类 `InnerClass` 的全名。 3. 自动生成的类或方法名:有些情况下,编译器或IDE会自动生成一些类或方法,并使用美元符号 `$` 进行命名。这些自动生成的类或方法通常与匿名内部类、Lambda 表达式或编译器生成的辅助类相关。例如: ```java Runnable r = new Runnable() { @Override public void run() { // 实现 Runnable 接口的匿名内部类 } }; List<String> list = new ArrayList<>() {{ add("A"); add("B"); }}; ``` 在这些情况下,编译器或IDE可能会生成类似 `OuterClass$1`、`Main$lambda$1` 这样的类名。 总的来说,美元符号 `$` 在Java主要用于命名变量或标识符、分隔内部类和外部类的名称,以及表示自动生成的类或方法。在一般的开发,我们很少直接使用美元符号 `$`,而是根据Java命名规范,使用字母、数字和下划线来命名变量和类。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值