有没有办法在Spring属性值中转义SpEL字符“#{”

oxcyiej7  于 4个月前  发布在  Spring
关注(0)|答案(2)|浏览(34)

我使用Sping Boot ,在我的application.yml中有以下配置
第一个月
API_KEY是随机生成的,包含“#{”(类似于“sksjd#{lsd 8”),它表示SpEL表达式的开始(https://docs.spring.io/spring/docs/4.3.10.RELEASE/spring-framework-reference/html/expressions.html#expressions-beandef)。这会导致spring尝试解释表达式,然后失败,因为没有右括号。
我希望字符串只是按字面解释,我不想重新生成这个键,并尝试:
apiKey: "${API_KEY}"
apiKey: '${API_KEY}'
apiKey: "#{'${API_KEY}'}"
apiKey: '#{"${API_KEY}"}'
更新:我在一个依赖库中测试这些更改,结果发现我仍然拉入了库的主版本,而不是有更改的本地版本。
apiKey: "#{'${API_KEY}'}"工作

dldeef67

dldeef671#

毕竟apiKey: "#{'${API_KEY}'}"确实有效,Prakash的回答也是如此,这帮助我意识到为什么我尝试的东西看起来都不起作用。

wwtsj6pe

wwtsj6pe2#

如果其他人正在寻找修复方法,对我有效的是,SpEL和其他特殊字符可以转义如下:

apiKeyPattern : '[${API_KEY}]'

字符串
这将导致文本${API_KEY}

相关问题