@Value el 表达式写法
时间: 2023-07-26 07:32:37 浏览: 135
`@Value` 注解支持 SpEL 表达式,可以在注解中使用表达式来计算属性值。SpEL 表达式以 `#{}` 或 `${}` 开头,使用 `${}` 表示简单的属性占位符,使用 `#{}` 表示 SpEL 表达式。
在 SpEL 表达式中,可以使用各种运算符、函数、变量等,可以对字符串、数字、集合等进行计算和操作。下面是一些常用的 SpEL 表达式示例:
1. 计算表达式,例如:
```java
@Value("#{2 + 3}")
private int result; // result = 5
```
2. 调用方法,例如:
```java
@Value("#{T(java.lang.Math).random()}")
private double random; // 0 <= random < 1
```
3. 引用属性,例如:
```java
@Value("${myapp.title}")
private String title;
```
4. 引用环境变量,例如:
```java
@Value("#{systemProperties['user.home']}")
private String userHome;
```
5. 使用三元运算符,例如:
```java
@Value("#{score >= 60 ? 'Pass' : 'Fail'}")
private String result;
```
在这个例子中,如果 `score` 大于等于 60,`result` 将被注入值 `"Pass"`,否则注入值 `"Fail"`。
6. 访问集合元素,例如:
```java
@Value("#{myList[0]}")
private String first;
```
在这个例子中,`myList` 是一个列表,`first` 将被注入列表中的第一个元素。
以上是一些常用的 SpEL 表达式示例,使用时需要注意表达式的语法和功能。同时,为了保证表达式的可读性和维护性,建议将复杂的表达式抽象成方法或者变量。
阅读全文