专栏首页学习笔记持续记录中...Spring - 通过SpEL为bean赋值(4)

Spring - 通过SpEL为bean赋值(4)

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>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring - bean配置 (2)

    IOC:其思想是反转资源获取的方向。传统的资源查找方式要求组件向容器发起请求查找资源作为回应,容器适时的返回资源。而应用了IOC之后,则是容器主动地将资源推动给...

    桑鱼
  • 使用NamedParameterJdbcTemplate(12)

    在经典的JDBC用法中,SQL参数是用占位符?表示,并且收到位置的限制,定位参数的问题在于,一旦参数的顺序发生变化,就必须改变参数绑定。

    桑鱼
  • Spring对JDBC的支持(11)

    由于每次使用都创建一个JdbcTemplate的新实例,这样的做法效率低下,JdbcTemplate类被设计称为线程安全的,可以可以在IOC容器中声明它的单个实...

    桑鱼
  • Hive篇--搭建Hive集群

    Hive中搭建分为三中方式 a)内嵌Derby方式 b)Local方式 c)Remote方式 三种方式归根到底就是元数据的存储位置不一样。

    LhWorld哥陪你聊算法
  • druid 数据源 使用属性文件的一个坑

    直接上代码: <bean id="propertiesFactoryBean" class="org.springframework.bea...

    菩提树下的杨过
  • mysql : utf8mb4 的问题

    微信呢称和QQ呢称上有很多火星文和emoji表情图片,这些数据,如果直接insert到mysql数据库,一般会报错,设置成utf8都不好使,必须改成utf8mb...

    菩提树下的杨过
  • Java程序员的日常——SpringMVC+Mybatis开发流程、推荐系统

    今天大部分时间都在写业务代码,然后算是从无到有的配置了下spring与mybatis的集成。 SpringMVC+Mybatis Web开发流程 配置数据...

    用户1154259
  • Zookeeper + Hadoop2.6 集群HA + spark1.6完整搭建与所有参数解析

    yum install autoconfautomake libtool cmake

    用户3003813
  • Hadoop 2.6.0集群搭建

    yum install autoconfautomake libtool cmake

    用户3003813
  • Spring MVC多个视图解析器及优先级

    如果应用了多个视图解析器策略,那么就必须通过“order”属性来声明优先级,order值越低,则优先级越高

    試毅-思伟

扫码关注云+社区

领取腾讯云代金券