如何覆盖ResourceHttpRequestHandler来实现自定义资源处理程序?

时间:2011-12-22 08:11:19

标签: model-view-controller spring-mvc resources web-config override

当我使用spring mvc时,我使用<mvc:resources />将静态资源的位置映射到处理程序,现在我想向处理程序资源添加一些新函数,是否有人可以告诉我如何覆盖ResourceHttpRequestHandler?

(基于以下文档,<mvc:resources />使用ResourceHttpRequestHandler来处理资源。)

提前致谢!

1 个答案:

答案 0 :(得分:5)

我没有尝试过这个,但您可以尝试扩展ResourceHttpRequestHandler并使用BeanFactoryPostProcessor将ResourceHttpRequestHandler类替换为您的自定义类。给出了类似的解决方案here

样本...

public class ResourceHttpRequestHandlerReplacer implements   BeanFactoryPostProcessor {
public void postProcessBeanFactory(ConfigurableListableBeanFactory factory)
        throws BeansException {

    String[] names = factory.getBeanNamesForType(ResourceHttpRequestHandler.class);

    for (String name: names) {
        BeanDefinition bd = factory.getBeanDefinition(name);
        bd.setBeanClassName("org.myProject.CustomResourceHttpRequestHandler");
    }            
  }       
}