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

Cha*_*les 3 model-view-controller resources overriding web-config spring-mvc

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

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

提前致谢!

Ara*_*d A 5

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

样品...

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");
    }            
  }       
}
Run Code Online (Sandbox Code Playgroud)