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}

 

posted @ 2022-05-06 21:16  努力的达子  阅读(92)  评论(0编辑  收藏  举报