spel 表达式语言 注入
1 2 3 4 5 6 7 8 9 10 11 12 | /* *作者:呆萌老师 *☑csdn认证讲师 *☑51cto高级讲师 *☑腾讯课堂认证讲师 *☑网易云课堂认证讲师 *☑华为开发者学堂认证讲师 *☑爱奇艺千人名师计划成员 *在这里给大家分享技术、知识和生活 *各种干货,记得关注哦! *vx:it_daimeng */ |
比如如果只是引入对象中的某个属性 可以 用#{}
1 2 3 4 5 6 7 | <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包
1 2 3 4 5 | <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version> 4.3 . 18 .RELEASE</version> </dependency> |
1.定义测试案例
自定义类: function类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 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(包名.类名).方法名([参数])}
访问成员方法
#{对象.方法名()}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <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> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)