spring – 如何使用@ConfigurationProperties注入java.nio.file.Path依赖项
作者:互联网
我正在使用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(setLocalDirectory)的引用.但是,当我这样做时,我收到一个绑定错误.有没有办法将属性绑定到路径(例如通过使用注释)?
解决方法:
我不知道是否有注释方法,但你可以添加一个转换器到你的应用程序.在启用了@ComponentScan的情况下将其标记为@Component可以正常工作,但您可能必须使用其他方式将其正确注册到ConversionService.
@Component
public class PathConverter implements Converter<String,Path>{
@Override
public Path convert(String path) {
return Paths.get(path);
}
当Spring看到你想要一个Path但它有一个String(来自你的application.properties)时,它会在其注册表中查找并发现它知道如何去做.
标签:spring,spring-boot-2,properties-file,java-nio-file 来源: https://codeday.me/bug/20190623/1273569.html