WebConfig
想要以Java形式定制默认的配置,你可以简单的实现WebMvcConfigurer接口,或者继承WebMvcConfigurerAdapter并重写需要的方法
@Configuration表示这是Java配置类;@EnableWebMvc注解用于启动Spring MVC特性。
@Configuration
@ComponentScan("com.my")
@EnableWebMvc
public class MyWebConfig extends WebMvcConfigurerAdapter {
/**
* 配置JSP视图解析器
* 如果没有配置视图解析器。Spring会使用BeanNameViewResolver,通过查找ID与逻辑视图名称匹配且实现了View接口的beans
* @return
*/
@Bean
public InternalResourceViewResolver setupViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver ();
/**设置视图路径的前缀*/
resolver.setPrefix("/WEB-INF/");
/**设置视图路径的后缀*/
resolver.setSuffix(".jsp");
return resolver;
}
}
二、WebInitializer
Spring MVC配置核心分发控制器Servlet,即DispatcherServlet,传统做法是直接使用web.xml进行配置.
现在要做的是基于注解配置,需要继承AbstractAnnotationConfigDispatcherServletInitializer。
AbstractAnnotationConfigDispatcherServletInitializer这个类负责配置DispatcherServlet、初始化Spring MVC容器和Spring容器。
加载过程:
1、当DispatcherServlet启动时,会创建一个Spring MVC应用容器并开始加载配置文件中定义好的beans。
通过getServletConfigClasses()方法,可以获取由DispatcherServlet加载的定义在WebConfig.class中的beans,例如:
controllers(控制器)、view resolvers(视图解析器)和处理器映射(handler mappings)
2、还有另一个Spring应用容器,这个容器由ContextLoaderListener创建,加载 @Repository,@Service等