使用Spring MVC通过域名动态提供静态文件

时间:2017-12-12 21:25:14

标签: java spring spring-mvc spring-boot

假设一个Spring Boot应用程序默认从其资源文件夹中提供静态文件。资源文件夹看起来像这样:

~/resources
~/resources/test.txt
~/resources/example.com/test.txt
~/resources/anotherexample.com/test.txt

现在,当我致电http://localhost:8080/test.txt时,应用程序返回~/resources/test.txt

在生产环境中,应用程序在example.comanotherexample.com运行。

我的问题是,我如何配置或扩展应用程序以实现静态内容根据请求的域从不同位置提供:

我已经找到了:

  • 有一个 ResourceHandlerRegistry
  • 可以在应用程序的spring配置中覆盖 addResourceHandlers 来操作资源处理程序注册表。
  • 解析器链中有 ResourceResolver ,它以某种方式通过其URL解析内部路径。

我缺少的是如何连接这些部分。 Afaik我应该为 ResourceResolver 编写一个实现,并将它放到 ResourceHandlerRegistry 的解析器链中。这样的实现会是什么样的,它是如何提供给资源处理程序注册表的?

0 个答案:

没有答案