Spring启动变量为小写

Spring启动变量为小写,spring,spring-boot,yaml,Spring,Spring Boot,Yaml,在application.yml文件中,我有以下变量 spring: application: name: LOCATION-SERVICE 名称是大写的,但我希望它在以下变量中变为小写: server: servlet: context-path: /api/v1/${spring.application.name} 我知道我可以将应用程序名称更改为小写字母,但我不希望这样做,以免弄乱应用程序的其余部分 是否可以用另一种方式将其转换为小写,如果可以,我如何才能做到这

在application.yml文件中,我有以下变量

spring:
  application:
    name: LOCATION-SERVICE
名称是大写的,但我希望它在以下变量中变为小写:

server:
  servlet:
    context-path: /api/v1/${spring.application.name}
我知道我可以将应用程序名称更改为小写字母,但我不希望这样做,以免弄乱应用程序的其余部分


是否可以用另一种方式将其转换为小写,如果可以,我如何才能做到这一点?

由于它支持Spring EL,您可以使用:

server:
  servlet:
    context-path: /api/v1/${spring.application.name.toLowerCase()}
阅读文档中有关Spring表达式语言的更多信息

要调用方法,您需要使用功能齐全的表达式,即
{…}
。表达式中的占位符可以这样写:

#{'${spring.application.name}'.toLowerCase()}
但是,spring boot似乎不允许在配置文件中使用SpEL,如图所示:

最后,虽然您可以在@Value中编写SpEL表达式,但是 不从应用程序属性文件处理表达式


我已经尝试过了,但是http请求对于/api/v1/LOCATION-SERVICE或/api/v1/LOCATION不起作用-service@simon-martineli我认为
${…}
语法只能取消对属性名称的引用。对于全功能表达式,您需要使用
{…}
{${spring.application.name}.toLowerCase()}
将是我的第一个猜测:-/不幸的是,你是对的;看起来文件中不允许使用表达式,因此您必须使用
@Value
找到一些解决方法。我最终将应用程序名称改为小写,但没有提供任何其他错误