在Spring配置文件中定义变量以访问带有图像的外部文件夹

时间:2016-07-11 12:21:17

标签: java spring configuration path

在JAVA Spring Controllers的不同部分中没有路径变量(即访问图像),有一种方法可以在配置文件中定义变量,然后通过这样的变量简单地使用它:

Config file:
String imageFolder = "D:\\Projects\\project_name\\images\\";

Spring Controller:
File outputFile = new File(imageFolder + img_name + "." + img_ext);
ImageIO.write(image, img_ext, outputFile);
提前做出来。

1 个答案:

答案 0 :(得分:0)

自己的解决方案(在底部添加):

的web.xml:

<context-param>
    <param-name>imageFolder</param-name>
    <param-value>D:\Projects\project_name\src\main\webapp\resource\images\</param-value>
</context-param>

控制器:

@RestController
public class nameController {    

    @Resource
    private ServletContext servletContext;

    @RequestMapping(value = "/getImage/{img_name:.+}")
    public byte[] getImage(@PathVariable String img_name) throws InternalError  {
    byte[] data;

     try {
         String imageFolder = servletContext.getInitParameter("imageFolder");

         String realpath = imageFolder + img_name;
         Path path = Paths.get(realpath);
         data = Files.readAllBytes(path);
     }catch (Exception e){
         data = null;
     }
    return data;
   }
}