更改资源文件的位置
把webapp目录下的文件拷贝到resources目录的static目录下
迁移web.
-
扩展WebApplicationInitializer迁移web.
-
public class WebInitializer implements WebApplicationInitializer { @Override public void up(ServletContext servletContext) throws ServletException { AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); ctx.register(MyMvcConfig.class); ctx.setServletContext(servletContext); Dynamic servlet = servletContext.addServlet(\"dispatcher\", new DispatcherServlet(ctx)); servlet.addMapping(\"/\"); servlet.setLoad up(1); servlet.setAsyncSupported(true); } }WebApplicationInitializer的实现类会自动被SpringServletContainerInitializer(
用来启动servlet3.0容器)获取到。EnableWebMvc
开启该注解,会开启一些mvc的默认配置:
-
必要的ViewResolver,比如ContentNegoti-atingViewResolver和Bean-NameViewRe-solver。
-
将必要的Converter、GenericConverter和Formatter等bean注册到IoC容器。 - 添加一系列的HttpMessageConverter以便支持对Web请求和相应的类型转换。
-
自动配置和注册MessageCodesResolver。
-
但如果使用下面的方式则会覆盖默认的配置(
spring-boot-starter-web该依赖会autoconfig这些)。 -
自定义webmvc
可以通过Configuration、EnableWebMvc注解在继承WebMvcConfigurerAdapter的类上面,来自定义mvc的配置
-
@Configuration @EnableWebMvc// 1 @EnableScheduling @ComponentScan(\"com.wisely.highlight_springmvc4\") public class MyMvcConfig extends WebMvcConfigurerAdapter {// 2 @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setPrefix(\"/WEB-INF/classes/views/\"); viewResolver.setSuffix(\".jsp\"); viewResolver.setViewClass(JstlView.class); return viewResolver; } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(\"/assets/**\").addResourceLocations( \"classpath:/assets/\");// 3 } @Bean // 1 public DemoInterceptor demoInterceptor() { return new DemoInterceptor(); } @Override public void addInterceptors(InterceptorRegistry registry) {// 2 registry.addInterceptor(demoInterceptor()); } @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController(\"/index\").setViewName(\"/index\"); registry.addViewController(\"/toUpload\").setViewName(\"/upload\"); registry.addViewController(\"/converter\").setViewName(\"/converter\"); registry.addViewController(\"/sse\").setViewName(\"/sse\"); registry.addViewController(\"/async\").setViewName(\"/async\"); } @Override public void configurePathMatch(PathMatchConfigurer configurer) { configurer.setUseSuffixPatternMatch(false); } @Bean public MultipartResolver multipartResolver() { CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); multipartResolver.setMaxUploadSize(1000000); return multipartResolver; } @Override public void extendMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(converter()); } @Bean public MyMessageConverter converter(){ return new MyMessageConverter(); } }
继续阅读与本文标签相同的文章
上一篇 :
R语言实战:评分与销量有相关性吗?
-
9月书讯:别抱怨读书苦,那是你看世界的路
2026-05-19栏目: 教程
-
首页流量波动大?如何避开猜你喜欢的n个雷区
2026-05-19栏目: 教程
-
Linux基础技术实践#网络安全基础技术实践课程
2026-05-19栏目: 教程
-
AI时代,你的职业会是?99%的人都无法直面!
2026-05-19栏目: 教程
-
centos7 编译安装 openresty
2026-05-19栏目: 教程
