静态资源位置动态映射

时间:2013-05-07 15:54:28

标签: spring spring-mvc

我目前使用Spring MVC的'mvc:resources ...'标签为我的webapp提供静态内容,在我的servlet上下文中设置URL映射和资源位置,如下所示:

<resources mapping="/resources/**" location="/resources/" />

这很好用,但我想做的是能够将“位置”设置为在应用程序中动态配置的文件系统路径(存储在数据库中)。这可能吗? (我认为这需要在spring上下文初始化之后发生,所以我可以从服务调用中获取结果,但我似乎无法想出一种方法来使其工作。)

1 个答案:

答案 0 :(得分:2)

这应该足够了

@Configuration
@EnableWebMvc
public class Bootstrap extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        String path = "file:" + ...;  // 'file:/' or 'file:' depending on how your path is formatted
        registry.addResourceHandler("/resources/**").addResourceLocations(path);
    }

}

如何获得path是另一回事。也许使用@Autowired@Bean数据源来获取连接并查询数据库中的路径。