java - 在 Spring 配置文件中定义变量以访问包含图像的外部文件夹

标签 java spring configuration path

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

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);

提前致谢。

最佳答案

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

web.xml:

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

Controller :

@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;
   }
}

关于java - 在 Spring 配置文件中定义变量以访问包含图像的外部文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38306790/

相关文章:

java - 在 Java 的另一个类中实例化/初始化的对象的引用变量

java - HSQLDB:如何在测试后截断数据库?

java - Spring - 将文件内容从类路径注入(inject)到带注释的成员中

spring - 来自过滤器的 Servlet Web 应用程序上下文

xml - Tomcat (TomEE)/7.0.62 (1.7.2) XML 配置文件最佳实践

django - 了解目录结构建议

java - Netbeans 7.1 运行旧代码而不是新代码

java - 静态变量与非静态变量

spring - 启动时Tomcat超时(spring maven hibernate)

configuration - Hadoop写入目录