Spring SimpleRhandLermapping-排除静态内容



我在弹簧靴中使用simpleurlhandlermpapping创建了一个专用的URL映射器。

在下面,您可以看到一个仅使用一个控制器的简化代码,并且仅映射2个urls:/url1和/url2到pagecontroller。

我的问题是,现在春季不仅发送/url1请求,还会发送所有静态(js,css,...)请求。

为什么会发生这种情况?如何避免它?

@Configuration
public class SimpleUrlHandlerMappingConfig {
    @Autowired
    private PageRepository pageRepository;
    @Bean
    public SimpleUrlHandlerMapping simpleUrlHandlerMapping() {
        SimpleUrlHandlerMapping simpleUrlHandlerMapping
                = new SimpleUrlHandlerMapping();
        Map<String, Object> urlMap = fillMappingsFromDb();
        simpleUrlHandlerMapping.setUrlMap(urlMap);
        return simpleUrlHandlerMapping;
    }
    private Map<String, Object> fillMappingsFromDb() {
        List<String> sefUrls = pageRepository.findMappings();
        Map<String, Object> urlMap = new HashMap<>();
        for (String sefUrl : sefUrls) {
            urlMap.put(sefUrl, page());
        }
        return urlMap;
    }
    @Bean
    public PageController page() {
        return new PageController();
    }
}

您可以指定要从默认调度器servlet中排除的资源。

假设您的静态内容位于名为资源的目录中:

使用xml

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

在扩展WebMvcConfigurerAdapter

的类中使用Java Config
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}

最新更新