我正在学习带有 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;
}
}
方法2:
@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 接口。我想问你有什么区别?当我实现这个接口时会发生什么,当我不实现它时会发生什么。任何反馈将不胜感激。
实施WebMvc配置器允许您配置 Spring MVC 配置。对于所有未实现的方法,都使用默认值。
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurer.html 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的任何地方。该指南可能有点令人困惑,给人的印象是这两件事在某种程度上有关联。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)