使用Spring在压缩文件中提供静态资源

时间:2014-09-19 15:36:57

标签: java spring spring-mvc

是否可以使用Spring MVC从压缩文件中提供静态资源?类似于this

我将一些数据打包成单独的JSON文件(例如123.json,1634.json等),并且目前通过

提供服务
<mvc:resources mapping="/resources/**" location="/resources/" />

文件位于.../resources/dataFiles/下。因此,用户可以转到http://mywebsite.com/resources/dataFiles/123.json来检索实体123的数据。

但是,我有~10,000个JSON文件。如果我可以在一个文件(.../resources/dataFiles/entities.zip)下压缩它们并告诉Spring在压缩文件中提供单独的JSON文件,那就太棒了。

因此,用户仍会转到http://mywebsite.com/resources/dataFiles/123.json,但.../resources/dataFiles/下的唯一文件是entities.zip。

如果此问题超出了MVC框架的范围,我使用的是Tomcat 7.0。

1 个答案:

答案 0 :(得分:1)

我不确定是否有一个Spring开箱即用的组件可以做到这一点,但你可以创建一个独立的Servlet来处理静态资源的传入请求,然后这个servlet会解析文件名,并从压缩文件中动态读取正确的Zip条目,并将内容返回到Response的OutputStream。看看:

sample code