从 thymeleaf 访问默认的@ConfigurationProperties 属性
Acces default @ConfigurationProperties property from thymeleaf
我正在尝试使用 thymeleaf 阅读 属性,但无法正常工作。
我有以下 属性 class:
@Configuration
@ConfigurationProperties(prefix = "storage")
public class FileSystemStorageProperties {
private String location = "image-dir";
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
我正在尝试使用
读取 thymeleaf 中的位置 属性
${@environment.getProperty('storage.location')}
然而什么也没有显示。
编辑:
如果我在 application.properties 中设置 storage.location=to something else
,它会起作用。但是thymeleaf为什么不选择默认值呢??
Spring不会根据变量名自动加载参数
您可以 annotate the getter method with @Bean
并按照您希望 属性 的方式命名它:
@Bean
public String location() {
return location;
}
如果您想将 getter 方法命名为 getLocation()
,您也可以通过设置 name of the @Bean
:
@Bean(name="location")
public String getLocation() {
return location;
}
If I set storage.location=to something else
in application.properties
, it works. But why doesn't thymeleaf pick the default value??
如果您在 application.propererties
中设置值,spring 会将其识别为 属性 并使用它。
如果不是,spring 认为它只是 getter 其他东西。
如果您将属性 class 更改为:
@Component("fileSystemStorageProperties") // Use @Component instead of @Configuration and give the bean an explicit name
@ConfigurationProperties(prefix = "storage")
public class FileSystemStorageProperties {
private String location = "image-dir";
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
然后你可以在 Thymeleaf 中这样做:
${@fileSystemStorageProperties.location}
有关详细信息,请参阅 https://www.thymeleaf.org/doc/articles/springmvcaccessdata.html#spring-beans。
我正在尝试使用 thymeleaf 阅读 属性,但无法正常工作。 我有以下 属性 class:
@Configuration
@ConfigurationProperties(prefix = "storage")
public class FileSystemStorageProperties {
private String location = "image-dir";
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
我正在尝试使用
读取 thymeleaf 中的位置 属性${@environment.getProperty('storage.location')}
然而什么也没有显示。
编辑:
如果我在 application.properties 中设置 storage.location=to something else
,它会起作用。但是thymeleaf为什么不选择默认值呢??
Spring不会根据变量名自动加载参数
您可以 annotate the getter method with @Bean
并按照您希望 属性 的方式命名它:
@Bean
public String location() {
return location;
}
如果您想将 getter 方法命名为 getLocation()
,您也可以通过设置 name of the @Bean
:
@Bean(name="location")
public String getLocation() {
return location;
}
If I set
storage.location=to something else
inapplication.properties
, it works. But why doesn't thymeleaf pick the default value??
如果您在 application.propererties
中设置值,spring 会将其识别为 属性 并使用它。
如果不是,spring 认为它只是 getter 其他东西。
如果您将属性 class 更改为:
@Component("fileSystemStorageProperties") // Use @Component instead of @Configuration and give the bean an explicit name
@ConfigurationProperties(prefix = "storage")
public class FileSystemStorageProperties {
private String location = "image-dir";
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
然后你可以在 Thymeleaf 中这样做:
${@fileSystemStorageProperties.location}
有关详细信息,请参阅 https://www.thymeleaf.org/doc/articles/springmvcaccessdata.html#spring-beans。