SpEL表达式

Spring表达式语言(SpEL)能够以一种强大和简洁的方式将值装配到bean属性和构造器参数中,在这个过程中所使用的表达式会在运行时计算得到。(之前的属性占位符需要在属性文件中硬编码)

SpEL表达式要放到 “#{…}”中。属性占位符要放到 “${…}”中。

1、字面值

public class Student {
    //也不需要setter方法
    //可以注入整形、字符型、boolean、
    @Value("#{23}")
    private int age;
    //String类型的字面量可以使用单引号或双引号
    @Value("#{'hhhodde'}")
    private String name;
}

xml中的配置
//不需要context:property-placeholder
<bean id="student" class="org.springaction.Student"/>

上面的这些字面量都是在java里设置的,也可以直接在xml中利用property属性或constructor-arg设置:

<bean id="student" class="org.springaction.Student">
     //需要有setter方法
        <property name="password" value="#{'3232'}"/>
    </bean>

2、引用Beam、Properties和方法
2.1、通过ID引用其他的Bean

 <bean id="student" class="org.springaction.Student">
   //需要Setter方法
   //等价于<property name="teacher" ref="teacher"/>
        <property name="teacher" value="#{teacher}"/>
    </bean>

    <bean id="teacher" class="org.springaction.Teacher"/>

2.2、获取Bean中的属性

<bean id="student" class="org.springaction.Student">
        <!--引用teacher Bean的属性address,将其值注入到student Bean的属性teachAddress中-->
        <property name="teachAddress" value="#{teacher.address}"/>
    </bean>

    <bean id="teacher" class="org.springaction.Teacher">
        <property name="address" value="chian hook"/>
    </bean>

2.3、获取Bean中的方法

<bean id="student" class="org.springaction.Student">
        <!--会调用teacher Bean中的方法newTeam(),将方法的返回值作为值注入-->
        <property name="theOne" value="#{teacher.newTeam()}"/>
    </bean>

3、操作类
在SpEL中,T()运算符的结果是一个Class对象,它可以被用来访问对象的静态方法和常量。

@Value("#{T(java.lang.Math).PI}")
    private int age;

4、SpEL运算符
用来操作表达式值的运算符包括:
这里写图片描述

@Value("#{2*T(java.lang.Math).PI+3232}")
    private int age;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值