美文网首页
Spring 通过 SpEL 为 bean 赋值

Spring 通过 SpEL 为 bean 赋值

作者: 桑鱼nicoo | 来源:发表于2020-01-24 19:36 被阅读0次

SpEL 字面量的表示

  1. 整数:<property name = "count" value="#{5}"/>

  2. 小数:<property name = "frequency" value="#{89.7}"/>

  3. 科学计数法:<property name = "capacity" value="#{1e4}"/>

  4. 字符串:<property name = "name" value="#{'Chuck'}"/><property name = 'name' value='#{"Chuck"}'/>

  5. Boolean: <property name = "enabled" value="#{false}"/>

 <bean id="address" class="com.sangyu.test02.Address">
        <property name="city" value="#{'Beijing'}"></property>
        <property name="street" value="Wudaokou"></property>
</bean>

SpEL 引用 Bean、属性和方法

  1. 引用其他对象:

<property name = "prefix" value="#{prefixGenerator}"/>

  1. 引用其他对象的属性

<property name = "suffix" value="#{sequenceGenerator2.suffix}"/>

  1. 调用其他方法

<property name = "suffix" value="#{sequenceGenerator2.suffix}"/>

  1. 链式操作

<property name = "suffix" value="#{sequenceGenerator2.toString().toUpperCase()}"/>

// 引用类的静态属性
<bean id="address" class="com.sangyu.test02.Address">
    <property name="city" value="#{'Beijing'}"></property>
    <property name="street" value="Wudaokou"></property>
</bean>

<bean id="car" class="com.sangyu.test02.Car">
    <property name="brand" value="Audi"></property>
    <property name="price" value="#{T(java.lang.Math).PI * 80}"></property>
</bean>

SpEL 支持的运算符号

  1. 算数运算符:+ - * / % ^

<property name = "adjustAmout" value="#{counter.total + 42}"/>

<property name = "adjustAmout" value="#{counter.total - 42}"/>

<property name = "adjustAmout" value="#{2 * T(java.lang.Math).PI * circle.radius}"/>

<property name = "adjustAmout" value="#{counter.total / counter.count}"/>

<property name = "adjustAmout" value="#{counter.total % counter.count}"/>

<property name = "adjustAmout" value="#{T(java.lang.Math).PI * circle.radius ^ 2}"/>

  1. 加号还可以用作字符串连接

<constructor-arg value = "#{performer.fistName + ' ' + performer.lastName}"/>

  1. 比较运算符:< > == <= >= lt gt eg le ge
    <property name = "equal" value="#{counter.total == 100}"/>
    <property name = "hasCapacity" value="#{counter.total le 1000000}"/>
<bean id="address" class="com.sangyu.test02.Address">
    <property name="city" value="#{'Beijing'}"></property>
    <property name="street" value="Wudaokou"></property>
</bean>

<bean id="car" class="com.sangyu.test02.Car">
    <property name="brand" value="Audi"></property>
    <property name="price" value="#{T(java.lang.Math).PI * 80}"></property>
</bean>

<bean id="person" class="com.sangyu.test02.Person">
    <property name="car" value="#{car}"></property>  <!-- 引用其他bean-->
    <property name="city" value="address.city"></property> <!-- 引用其他bean的属性-->
    <property name="info" value="#{car.price > 30000 ? '金领' : '白领'}"></property> <!-- 使用运算符-->
    <property name="name" value="Tom"></property>
</bean>

相关文章

  • Spring 通过 SpEL 为 bean 赋值

    SpEL 字面量的表示 整数: 小数: 科学计数法: 字符串: 或 Boolean: SpEL 引用 Bean、属...

  • spring学习8( SpEL 使用)

    SpEL可以引用静态方法 使用运算符 引用其他bean属性 动态的为bean赋值 使用SpEL为属性赋值 为bea...

  • Spring-属性赋值

    Spring属性赋值,是指给对象的基础类型属性赋值。 赋值方式 通过xml对属性赋值通过bean下的propert...

  • spring注解 -- @Value赋值

    1. 语法说明 为bean的属性添加初始值。赋值的方式 添加基本值: @Value("hi") 使用SpEL:#{...

  • Java Spring-SPEL

    Spring表达式语言(SPEL):是一个支持运行时查询和操作对象图的强大的表达式语言。SPEL为bean的属性进...

  • 基于SpEL实现springboot 集成mongo动态集合存储

    SpEL概念 SpEL全称为“Spring Expression Language”,简写为“SpEL”,Spri...

  • SpEL

    Spring表达式语言(SpEL),它的特性包括: 使用bean的ID来引用bean. 调用方法和访问对象的属性。...

  • spring常用注解及源码解析(三)

    属性赋值相关注解的基本用法 @Value 1、基本数值2、可以写SpEL表达式,#{}Demo在BEAN类文件中在...

  • SpEL表达式

    Spel概述 Spring表达式语言全称为“Spring Expression Language”,缩写为“SpE...

  • Java使用SpEL

    什么是SpEL SpEL(Spring Expression Language),即Spring表达式语言。它与J...

网友评论

      本文标题:Spring 通过 SpEL 为 bean 赋值

      本文链接:https://www.haomeiwen.com/subject/pabcthtx.html