SpringBoot SpringEL表达式怎么使用


这篇文章主要讲解了“SpringBoot SpringEL表达式怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot SpringEL表达式怎么使用”吧!什么是SpringEL(SpEL)?Spring3中引入了Spring表达式语言―SpringEL,SpEL是一种强大,简洁的装配Bean的方式SpringEL可以通过运行期间执行的表达式将值装配到我们的属性或构造函数当中SpringEL可以调用JDK中提供的静态常量,获取外部Properties文件中的的配置为什么要使用SpringEL?平常通过配置文件或Annotaton注入的Bean,其实都可以称为静态性注入如Bean A中有变量A,它的值需要根据Bean B的B变量为参考,在这场景下静态注入就对这样的处理显得非常无力而Spring3增加的SpringEL就可以完全满足这种需求,而且还可以对不同Bean的字段进行计算再进行赋值,功能非常强大如何使用SpringEL?SpringEL从名字来看就能看出和EL是有点关系的,SpringEL的使用和EL表达式的使用非常相似EL表达式在JSP页面更方便的获取后台中的值,而SpringEL就是为了更方便获取Spring容器中的Bean的值EL使用${},而SpringEL使用#{}进行表达式的声明两者主要区别$是去找外部配置的参数,将值赋过来#是SpEL表达式,去寻找对应变量的内容也可以直接使用@value(“常量”)注入不使用EL,这样写法与直接赋值等价如果是在Spring中使用可以使用**@PropertySource(“classpath:my.properties”)**加载对应配置文件使用EL注入简单值注入配置文件属性值注入默认值注入列表不支持直接配置文件中数组语法格式注入列表可以识别使用逗号,分隔的配置,spring默认以,分隔完整参考如下配置文件属性配置类向controller中注入配置类,然后访问接口测试结果如下1、使用SpEL注入简单值和普通EL注入使用基本一致
2、SpEl注入map配置文件中需要使用双引号括起来,否则将会注入失败,key为单引免费云主机域名号java类中先使用${spEl.mapInject}注入字符串值,#{}会解析字符串的值转为map3、SpEl注入list除了可以通过EL注入listI外,也可以使用#{${}.split(“分隔符”)}的方式注入List配置文件中例如使用#分隔java类中先使用${spEl.listInject}注入字符串值,内容使用单引号括起来,然后对字符串使用split方法分隔
提示:避免为空情况,可以给一个默认值空串4、动态注入上述注入都是静态注入,SpEl支持从Spring容器中注入信息,称为动态注入。动态注入类如下SpEl支持和不支持操作支持动态注入实例,类似于对象自动注入SPL不支持直接注入配置文件中的配置支持调用静态和实例方法静态方法:@Value(“#{T(package.ClassName).ConstFieldName”)支持调用静态类或常量支持运算符运算支持操作集合支持查询筛选集合和投影注入完整操作如下注入结果Spring操作外部Properties文件SpringEL在使用时仅仅是一个字符串,不易于排错与测试,也没有IDE检查我们的语法,当出现错误时较难检测,复杂的表达式不建议通过SpringEL方式注入。在非必要情况下,不推荐使用SpEl的复杂注入,清晰可读的代码更为重要且有利于排查问题上述都是通过指定字段进行注入,可以通过@ConfigurationProperties指定前缀进行自动注入配置类自动属性注入类通过prefix指定前端为user,然后将会把user.后的类型按照名称进行注入注意必须要提供setter方法可以通过@EnableConfigurationProperties(value = UserConfig.class)将UserConfig再次强制注入,问题出现在如果UserConfig为第三方jar包内的配置类,则可能出现属性没有注入情况,所以可以指定注入
感谢各位的阅读,以上就是“SpringBoot SpringEL表达式怎么使用”的内容了,经过本文的学习后,相信大家对SpringBoot SpringEL表达式怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: JS中如何利用字面量创建对象

本篇内容介绍了“JS中如何利用字面量创建对象”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是字面量字面量(literal)是表达一个固定值的表示法,又叫常量…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 04/10 10:30
Next 04/10 10:31

相关推荐