4.spel表达式
1.可以使用字面量
2.引用其他bean
3.引用其他bean的某个属性‘
4.调用非静态方法
5.调用静态方法
示例:
1.使用字面量(支持所有的运算符)---->格式为#{}
<bean id="person" class="entity.Person" >
<property name="age" value="#{12*333}"></property>
</bean>
输出:Person{name='null', age=3996, car=null, bookList=null}
2.引用其他bean:格式为#{id}
<bean id="car" class="entity.Car" p:carName="宝马" p:price="3000"></bean>
<bean id="person" class="entity.Person" >
<property name="car" value="#{car}"></property>---------------------->格式为:#{id}
</bean>
输出:Person{name='null', age=null, car=Car{carName='宝马', price=3000}, bookList=null}
3.引用其他bean的某个属性:格式为#{id.某个属性}
<bean id="car" class="entity.Car" p:carName="宝马" p:price="3000"></bean>
<bean id="person" class="entity.Person" >
<property name="name" value="#{car.carName}"></property>--------------->格式为:#{id.某个属性}
</bean>
输出:Person{name='宝马', age=null, car=null, bookList=null}
4.调用静态方法:通过UUID生成person的name属性
格式为:#{T(全类名).静态方法(方法入参)}
<bean id="person" class="entity.Person" >
<property name="name" value="#{T(java.util.UUID).randomUUID().toString()}"></property>
</bean>
输出:Person{name='f17f5538-433d-4bb1-b406-b7771094149f', age=null, car=null, bookList=null}
5.调用非静态方法:格式:对象.方法名--->需求:person的name属性通过car的getName属性来获取
<bean id="car" class="entity.Car" p:carName="宝马" p:price="3000"></bean>
<bean id="person" class="entity.Person" >
<property name="name" value="#{car.getCarName()}"></property>
</bean>
输出:Person{name='宝马', age=null, car=null, bookList=null}