Как переопределить ResourceHttpRequestHandler для реализации настраиваемого обработчика ресурсов? - PullRequest
3 голосов
/ 22 декабря 2011

Когда я использую Spring mvc, я использую <mvc:resources /> для сопоставления расположения статических ресурсов с обработчиком, и теперь я хочу добавить некоторые новые функции в ресурс обработчика, есть кто-нибудь, кто может сказать мне, как переопределить ResourceHttpRequestHandler?

(Исходя из следующего документа, <mvc:resources /> использует ResourceHttpRequestHandler для обработки ресурсов.)

Заранее спасибо!

1 Ответ

5 голосов
/ 22 декабря 2011

Я не пробовал этого, но вы можете попробовать расширить 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");
    }            
  }       
}
...