Spring maven filtering使用方法详解
SpringEL表达式取值一般是${var}方式取值, 见于application.properties和@Value("${var}")中
maven的pom.xml文件中也有类似的取值表达式, 也是通过${var}的方式取值
然而: 它们并不是一个东西!
EL表达式适用于配置文件及代码中的注解
maven的占位符取值表达式默认仅仅适用于pom.xml文件中
我们的需求大多是想打通二者的交流,如何做?
此时filtering就派上用场了
maven的占位符解析表达式的使用场合默认只在pom文件范围内活动
如果想扩大它的活动范围,就必须指定需要扩大到哪些文件,然后指定filtering=true.然后maven的占位符解析表达式就可以用于它里面的表达式解析了.
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
=================================================================================================================
题外话:
如果你的项目继承了spring-boot-starter-parent,
如果想在application.properties中使用maven的占位符以获取maven的参数,此时就不能用${},
因为可能会与EL表达式冲突,
怎么办?
此时parent依赖将maven占位符表达式默认改为@var@的形式. 所以只能用@var@替代${var}
总结:
1. Spring EL表达式和MAVEN的占位符表达式长得一样,但两者默认进水不犯河水,不能再Spring的范围内取maven的参数
2. filtering的作用就是打通两者的连接, 让井水犯河水, 具体来说是让Spring的范围内能取到maven的参数
3. filtering的使用要配合resource一起使用: 前者开启打通连接,后者指定打通的范围.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
认证授权中解决AuthenticationManager无法注入问题
这篇文章主要介绍了认证授权中解决AuthenticationManager无法注入问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-10-10
使用 Spring AI + Ollama 构建生成式 AI 应用的方法
通过集成SpringBoot和Ollama,本文详细介绍了如何构建生成式AI应用,首先,介绍了AI大模型服务的两种实现方式,选择使用ollama进行部署,随后,通过SpringBoot+SpringAI来实现应用构建,本文为开发者提供了一个实用的指南,帮助他们快速入门生成式AI应用的开发2024-11-11
jfinal中stateless模式嵌入shiro验证的实现方式
这篇文章主要介绍了jfinal中stateless模式嵌入shiro验证,今天,我们就来尝试一种通过拦截器来实现的Stateless Jfinal嵌入方式,需要的朋友可以参考下2022-06-06
springboot+RabbitMQ+InfluxDB+Grafara监控实践
这篇文章主要介绍了springboot+RabbitMQ+InfluxDB+Grafara监控实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-07-07


最新评论