如何用Spring注入网络文件资源?

时间:2014-12-23 09:45:01

标签: java spring

如何告诉Spring该资源应该是一个网络资源,并让它自动相应地自动装配?

@Value("\\MY-MACHINE\thefile.txt")
private Resource file;

结果:

Caused by: java.io.FileNotFoundException: class path resource [MY-MACHINE\thefile.txt] cannot be resolved to URL because it does not exist

4 个答案:

答案 0 :(得分:1)

我假设你的应用程序部署在Windows上。我没有任何Windows工作站来测试它,但据我记得这是它的方式:

  • 创建指向您网络位置的符号链接:

    mklink /D C:\my-machine \\MY-MACHINE\
    
  • 使用绝对路径引用此符号链接:

@Value("file:///C:/my-machine/thefile.txt")
private Resource file;

答案 1 :(得分:1)

似乎没有人注意到,我发现使用双斜线是必要的:

@Value("\\\\MY-MACHINE\\thefile.txt")
private Resource file;

在某些情况下,您可能需要file:声明,例如: file:\\\\MY-MACHINE\\thefile.txt"

答案 2 :(得分:0)

这是使用classpath

的最简单方法
import org.springframework.core.io.Resource;

@Value("classpath:<path to file>")
private Resource file;

答案 3 :(得分:0)

访问Windows共享上的文件无法直接使用。有关如何执行此操作的详细信息,请参阅connecting to shared folder in windows with java