什么是Spring EL表达式呢,如下代码所示:
@Value("${user.id}")
private Long id;
而这里的“${user.id}”,便是Spring EL表达式。
当然了,如果Spring EL表达式仅限于此,那也不会专门用一个篇幅来介绍它了,上面的例子只是它最基本的用法,下面让我们来一起看看另外的用法。
以上的这些都是书中的原话,接下来让我们创建一个类,尝试一下:
@Component
@Data
public class UserSource {
private Float pi = 3.14f;
private String name = "user_source";
private String address = "com.zzm.springeltest.bean";
private String nullStr;
}
public class Utils {
public static String way(String str){
return "Util=>" + str;
}
}
@Component
@Data
@Slf4j
public class UserEl {
@Value("${user.id}")
private Long id;
@Value("#{T(System).currentTimeMillis()}")
private Long initTime;
@Value("#{'使用Spring EL赋值的字符串'}")
private String desc;
@Value("#{9.3E3}")
private Double salary;
@Value("#{3.14}")
private Float pi;
@Value("#{userSource.name}")
private String name;
@Value("#{userSource.nullStr?.toUpperCase()}")
private String address;
@Value("#{6+8}")
private Integer run;
@Value("#{userSource.pi == 3.14f}")
private Boolean piFlag;
@Value("#{userSource.name eq 'user_source'}")
private String strFlag;
@Value("#{userSource.name + '连接字符串'}")
private String strApp;
@Value("#{userSource.pi > 3 ? '大于圆周率' : '小于圆周率'}")
private String piEq;
@Value("#{T(com.zzm.springeltest.util.Utils).way(userSource.name)}")
private String wayRes;
@PreDestroy
public void myDestroy(){
log.warn("UserEl=》{}", this.toString());
}
然后我们启动应用,随后关闭应用(因为我们自定义了bean的销毁方法myDestroy,用来打印出bean的信息),可以看到如下日志:
好了,今天就先到这里了,眼过千遍不如手过一遍,赶紧去自己尝试一下吧。。。。拜拜