@ConfigurationProperties引用自身引用其他属性的属性

jax*_*jax 9 spring-boot

project.name=my-project
base.url=http://localhost:8080
cas.url=http://my-server:8010/cas
cas.callback.url=${base.url}/${project.name}
Run Code Online (Sandbox Code Playgroud)

基本上我想在spring-boot ConfigurationProperties中使用上面的内容,但casCallbackUrl总是为null.

@Component
@ConfigurationProperties(prefix = "cas")
@Getter
@Setter
public class CasSettings {

    @NotBlank
    private String url; //this is resolved correctly

    @NotBlank
    private String callbackUrl; //callbackUrl is null

}
Run Code Online (Sandbox Code Playgroud)

更新

好吧,我通过camelCasing属性名称得到它,但根据文档,你应该能够使用点符号的属性名称.

从:

cas.callback.url=${base.url}/${project.name}
Run Code Online (Sandbox Code Playgroud)

至:

cas.callbackUrl=${base.url}/${project.name}
Run Code Online (Sandbox Code Playgroud)

为什么spring-boot没有采用点符号?

Ste*_*veO 6

点表示配置属性对象中的单独对象。cas.callback-url会工作。