5

spel 表达式语言 注入

 1 year ago
source link: https://blog.51cto.com/u_15707781/5714457
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

spel 表达式语言 注入

精选 原创
/*
*作者:呆萌老师
*☑csdn认证讲师
*☑51cto高级讲师
*☑腾讯课堂认证讲师
*☑网易云课堂认证讲师
*☑华为开发者学堂认证讲师
*☑爱奇艺千人名师计划成员
*在这里给大家分享技术、知识和生活
*各种干货,记得关注哦!
*/

比如如果只是引入对象中的某个属性 可以 用#{}

<bean id="outSeller_05" class="com.test.pojo.OutSeller" p:type="饿了么"
p:drink-ref="drink_05" />

<bean id="outSeller_06" class="com.test.pojo.OutSeller">
<property name="type" value="#{outSeller_05.type}" />
<property name="drink" ref="drink_05" />
</bean>

二.SPEL
spel:spring 表达式语言 ,Spring Expression Language(缩写为SpEL)是一种强大的表达式语言。在Spring产品组合中,它是表达式计算的基础。它支持在运行时查询和操作对象图,它可以与基于XML和基于注解的Spring配置还有bean定义一起使用。由于它能够在运行时动态分配值,因此可以为我们节省大量Java代码

需要的jar包

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>

1.定义测试案例
​ 自定义类: function类

package com.test.spel;

import com.test.pojo.Drink;

import java.util.ArrayList;
import java.util.List;

public class TestSpel {

//成员方法 先创建对象 再调用对象中的方法
// <bean id="testSpel" class="com.test.spel.TestSpel"/>
//#{testSpel.getDrinkList()}
public List<Drink> getDrinkList()
{
List<Drink> list=new ArrayList<Drink>();

list.add(new Drink("奶茶"));

list.add(new Drink("橙汁"));

return list;

}

//静态方法 可以直接用类名访问 # {T(com.test.spel.TestSpel).getDrinkList2()}


public static List<Drink> getDrinkList2()
{
List<Drink> list=new ArrayList<Drink>();

list.add(new Drink("奶茶2"));

list.add(new Drink("橙汁2"));

return list;

}

}
2.在 spring的配置文件中的使用
访问成员属性

#{对象.属性名}

访问静态方法

#{T(包名.类名).方法名([参数])}

访问成员方法

#{对象.方法名()}
<bean id="testSpel" class="com.test.spel.TestSpel"/>

<!-- 访问成员方法 -->
<bean id="aa" class="com.test.pojo.AA">

<property name="num" value="#{3*4}" />

<property name="drinkList" value="#{testSpel.getDrinkList()}" />

</bean>

<!-- 访问静态方法 -->
<bean id="aa2" class="com.test.pojo.AA">

<property name="drinkList" value="#{T(com.test.spel.TestSpel).getDrinkList2()}" />

</bean>
  • 收藏
  • 评论
  • 分享
  • 举报

上一篇:复杂类型注入


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK