SpringMvc环境搭建
2018-06-18 00:29:58来源:未知 阅读 ()
package com.mcs.Sgin.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; import com.mcs.Sgin.config.web.WebConfig; public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class<?>[] { RootConfig.class }; } @Override protected Class<?>[] getServletConfigClasses() { return new Class<?>[] { WebConfig.class }; } @Override protected String[] getServletMappings() { // 将DispatcherServlet映射到"/" return new String[] { "/" }; } }
1.配置DispatcherServlet
借助Servlet 3 规范,可以使用JAVA配置DispatcherServlet到Servlet容器中。
下面是所需要的JAVA类。
扩展AbstractAnnotationConfigDispatcherServletInitializer的任意类都会自动配置DispatcherServlet和Spring应用上下文,Spring应用上下文会位于应用程序的Servlet上下文中。
细节:Servlet3.0中,容器会自动查找 实现了javax.servlet.ServletContainerInitialize接口的类,如果可以发现的话,就用它泪配置Servlet容器。Spring提供了实现,名为SpringServletContainerInitializer,这个类会查找实现了WebApionInitializer的类,并将配置任务交给它来完成。Spring提供了便利的WebApionInitializer实现,名为AbstractAnnotationConfigDispatcherServletInitializer。所以只要继承这个便利类,Spring会用它配置Servlet上下文。
两个应用上下文的关系
当DispatcherServlet启动的时候,它创建了Spring应用上下文,并加载配置文件或类所声明的bean。getServletConfigClasses()中,我们要求DispatcherServlet加载应用上下文时,使用定义在WebConfig中的bean。
SpringWeb中,还有另一个应用上下文,他是有ContextLoaderListener创建的。
通常DispatcherServlet加载包含Web组件的bean,如控制器,视图解析器及处理器映射,ContextLoaderListener加载其他的bean,例如中间层,数据库层组件。
实际上,AbstractAnnotationConfigDispatcherServletInitializer会同时创建DispatcherServlet和ContextLoaderListener。getServletConfigClasses()返回的带有@Configuration的类会用来定义DispatcherServlet应用上下文中的bean。
getRootConfigClasses()返回的带有@Configuration的类会用来配置ContextLoaderListener创建的应用上下文中的bean。
开启SpringMVC
最简配置
只要添加一个 @EnableWebMvc 注解。
@Configuration @EnableWebMvc public class WebConfig { }
他可以运行但还存在一些问题。
- 没有配置试图解析器。Spring默认使用BeanNameViewResolver,它会查找ID与名称匹配的bean,并且bean要实现View接口。
- 没有启动自动扫描。
- 静态资源的请求也会被它处理。
循序渐进
@Configuration @EnableWebMvc @ComponentScan("com.mcs.Sgin.web") // 启用自动扫描 public class WebConfig extends WebMvcConfigurerAdapter { //配置JSP视图解析器 @Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; } //配置静态资源的处理 @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } }
WebConfig扩展屏重写WebMvcConfigurerAdapter的configureDefaultServletHandling()方法,通过调用DefaultServletHandlerConfigurer的enable()方法,我们要求DispatcherServlet将对静态资源的请求转发到Servlet容器默认的Servlet上。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:文件的上传和下载学习小结
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- java学习之第一天 2020-06-11
- 数据源管理 | Kafka集群环境搭建,消息存储机制详解 2020-06-11
- java环境教程:Tomcat下载,安装,设置为Windows服务,启动 2020-06-09
- Spring Cloud微服务(一):公共模块的搭建 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash