我正在使用 Spring Boot 并具有以下 Component 类:
@Component
@ConfigurationProperties(prefix="file")
public class FileManager {
private Path localDirectory;
public void setLocalDirectory(File localDirectory) {
this.localDirectory = localDirectory.toPath();
}
...
}
以及以下 yaml 属性文件:
file:
localDirectory: /var/data/test
我想通过替换为 java.nio.file.Path 来删除 java.io.File (of setLocalDirectory) 的引用。但是,执行此操作时会收到绑定(bind)错误。有没有办法将属性绑定(bind)到路径(例如通过使用注释)?
最佳答案
要添加到上面 jst 的答案,Spring Boot 注释 @ConfigurationPropertiesBinding 可用于 Spring Boot 识别用于属性绑定(bind)的转换器,如 Properties Conversion 下的文档中所述:
@Component
@ConfigurationPropertiesBinding
public class StringToPathConverter implements Converter<String, Path> {
@Override
public Path convert(String pathAsString) {
return Paths.get(pathAsString);
}
}
关于spring - 如何使用 @ConfigurationProperties 注入(inject) java.nio.file.Path 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31058245/