3

私はspring mvcを使用するとき、私は<mvc:resources />を使用して静的リソースの場所をハンドラにマップし、ハンドラリソースにいくつかの新しい関数を追加したいのですが、ResourceHttpRequestHandlerをオーバーライドする方法を教えてくれる人はいますか?事前に(次のdoc、リソースを処理するために<mvc:resources />使用ResourceHttpRequestHandlerに基づいています。)カスタマイズされたリソースハンドラを実装するためにResourceHttpRequestHandlerをオーバーライドする方法は?

ありがとう!

答えて

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"); 
    }    
    }  
} 
関連する問題