【问题标题】:When to implement WebMvcConfigurer to configure Spring MVC?什么时候实现WebMvcConfigurer来配置Spring MVC?
【发布时间】:2019-07-01 09:30:17
【问题描述】:

我正在学习使用 Java 配置(无 xml)的 Spring MVC,我有一个简单的问题。我看到了两种制作 Spring bean 配置的方法:

方法一:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages="com.demo.springmvc")
public class DemoAppConfig {

    // define a bean for ViewResolver

    @Bean
    public ViewResolver viewResolver() {

        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();

        viewResolver.setPrefix("/WEB-INF/view/");
        viewResolver.setSuffix(".jsp");

        return viewResolver;
    }

}

方法二:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example")
public class SpringConfig implements WebMvcConfigurer{

    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/pages/");
        viewResolver.setSuffix(".jsp");

        return viewResolver;
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

}

所以一种方法是实现 WebMvcConfigurer 接口,另一种方法是不实现 WebMvcConfigurer 接口。我想问你有什么区别?当我实现这个接口时会发生什么,当我不实现它时会发生什么。任何反馈将不胜感激。

【问题讨论】:

  • 好问题没有正确答案,我也想知道有什么区别!

标签: java spring-mvc spring-bean


【解决方案1】:

实现 WebMvcConfigurer 让您可以配置 Spring MVC 配置。对于所有未实现的方法,使用默认值。

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurer.html


至于@Bean public ViewResolver viewResolver(),这个bean定义的位置其实和这个类完全没有关系,可以放在Spring正在扫描bean的任何地方。该指南可能有点混乱,给人的印象是这两件事在某种程度上是相关的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-25
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多