maven的java web工程改造为springboot项目

更改资源文件的位置

把webapp目录下的文件拷贝到resources目录的static目录下

迁移web.xml

  • 扩展WebApplicationInitializer迁移web.xml

  • public class WebInitializer implements WebApplicationInitializer {
    
        @Override
        public void onStartup(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.setLoadOnStartup(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();
        }
    }

     

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值