gpt4 book ai didi

java - Spring 启动 : Change property placeholder signifier

转载 作者:IT老高 更新时间:2023-10-28 13:34:39 30 4
gpt4 key购买 nike

在 Spring Boot 中更改属性占位符的前缀和后缀的最简单方法是什么?

默认是 @Value("${some.property}"),但是这在 Kotlin 中看起来很难看,因为它需要被转义 - ${something} 是 Kotlin 中的语言特性用于字符串模板。

最佳答案

可以通过在配置中声明以下 bean 来自定义使用的前缀:

@Bean
fun propertyConfigurer() = PropertySourcesPlaceholderConfigurer().apply {
setPlaceholderPrefix("%{")
}

如果您有任何使用 ${...} 语法的现有代码(如 Spring Boot 执行器或 @LocalServerPort),则应声明:

@Bean
fun kotlinPropertyConfigurer() = PropertySourcesPlaceholderConfigurer().apply {
setPlaceholderPrefix("%{")
setIgnoreUnresolvablePlaceholders(true)
}

@Bean
fun defaultPropertyConfigurer() = PropertySourcesPlaceholderConfigurer()

@Value("\${some.property}") 中的转义美元是另一种不需要 @Bean 声明的可能选项。

对于使用 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) 配置的 Spring Boot 测试,您可以使用 @LocalServerPort 而不是 @Value("\${local .server.port}").

@ConfigurationProperties将是一个更好的选择,尤其是 Kotlin 数据类,但目前您必须使用具有可为空的 var 属性的 Kotlin 类,因为仅支持 getter/setter。您可以投票给this issue或发表评论以表明您有兴趣在 Spring Boot 2.x 中获得支持。

关于java - Spring 启动 : Change property placeholder signifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33821043/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com