我只是迁移到spring mvc version 5.0.1.RELEASE
但突然在eclipse中STS WebMvcConfigurerAdapter被标记为已弃用
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
// to serve static .html pages...
registry.addResourceHandler("/static/**").addResourceLocations("/resources/static/");
}
....
}
我该如何删除它!
答案 0 :(得分:183)
从Spring 5开始,您只需要实现接口WebMvcConfigurer
:
public class MvcConfig implements WebMvcConfigurer {
这是因为Java 8在接口上引入了默认方法,涵盖了WebMvcConfigurerAdapter
类
见这里:
答案 1 :(得分:5)
如今,我一直在开发名为Springfox
的Swagger等效文档库,发现在Spring 5.0.8(目前正在运行)中,接口WebMvcConfigurer
已由类{{1}实现我们可以直接扩展的类。
WebMvcConfigurationSupport
这就是我用来设置资源处理机制的方式,如下所示-
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
public class WebConfig extends WebMvcConfigurationSupport { }
答案 2 :(得分:0)
在春季,每个请求都将通过 DispatcherServlet 。为了避免通过DispatcherServlet(Front contoller)进行静态文件请求,我们配置MVC Static content。
Spring 3.1。引入了ResourceHandlerRegistry,以配置ResourceHttpRequestHandlers来从类路径,WAR或文件系统中提供静态资源。我们可以在Web上下文配置类中以编程方式配置ResourceHandlerRegistry。
- 我们已将
/js/**
模式添加到ResourceHandler,让其包含位于foo.js
目录中的webapp/js/
资源< / li>- 我们已将
/resources/static/**
模式添加到ResourceHandler,让其包含位于foo.html
目录中的webapp/resources/
资源< / li>
@Configuration
@EnableWebMvc
public class StaticResourceConfiguration implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
System.out.println("WebMvcConfigurer - addResourceHandlers() function get loaded...");
registry.addResourceHandler("/resources/static/**")
.addResourceLocations("/resources/");
registry
.addResourceHandler("/js/**")
.addResourceLocations("/js/")
.setCachePeriod(3600)
.resourceChain(true)
.addResolver(new GzipResourceResolver())
.addResolver(new PathResourceResolver());
}
}
XML配置
<mvc:annotation-driven />
<mvc:resources mapping="/staticFiles/path/**" location="/staticFilesFolder/js/"
cache-period="60"/>
Spring Boot MVC Static Content (如果文件位于WAR的 webapp / resources 文件夹中)。
spring.mvc.static-path-pattern=/resources/static/**
答案 3 :(得分:0)
使用org.springframework.web.servlet.config.annotation.WebMvcConfigurer
在Spring Boot 2.1.4.RELEASE(Spring框架5.1.6.RELEASE)中,这样做
package vn.bkit;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; // Deprecated.
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
@EnableWebMvc
public class MvcConfiguration implements WebMvcConfigurer {
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/");
resolver.setSuffix(".html");
return resolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}