编程语言
首页 > 编程语言> > spring – 如何使用@ConfigurationProperties注入java.nio.file.Path依赖项

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