使用Java配置SpringMVC
在此之前,一直使用的是XML的方式配置SpringMVC,现在为了适应Servlert3.0以及JavaConfig的Spring配置方式,在这里记录一下使用Java代码配置SpringMVC。首先,来回顾一下使用XML配置的过程:
1.在web.xml中配置DispatcherServlet
2.在SpringMVC配置文件中配置viewResolver(视图解析器)
3.在SpringMVC配置文件中配置两个基本配置
- <mvc:annotation-driven/>
- <mvc:default-servlet-handler/>
4.在SpringMVC配置文件中配置组件扫描Controller(注意与Spring的组件扫描分开,形成父子容器,这也是Spring建议的)
这几步下来,SpringMVC基本上已经配置完成。我们使用Java配置的过程也大致如此。
配置DispatcherServlet
因为不再使用web.xml,那么去哪里配置DispatcherServlet ?
我们需要使用一个类继承 AbstractAnnotationConfigDispatcherServletInitializer ,继承之后这个类就相当于前端控制器了:
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() {
return new String[] {"/"};
}
}
getRootConfigClasses()方法用于获取根容器的配置类;(Spring的配置文件),相当于父容器配置,这里使用的是名为RootConfig的类
getServletConfigClasses()方法用于获取web容器的配置类(SpringMVC配置文件),相当于子容器配置,这里使用的是名为WebConfig的类
SpringMVC的配置
)
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter{ @Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");return viewResolver;
} @Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
} }
在这里我是将视图解析器配置为一个Bean,还可以直接重写WebMvcConfigurerAdapter 类的 configureViewResolvers方法,效果是一样的
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/view/", ".jsp");
}
@EnableWebMvc 注解就相当于应用了<mvc:annotation-driven/> ,启用了SpringMVC的高级特性
重写 configureDefaultServletHandling 方法就是将SpringMVC不能处理的静态资源交给Tomcat处理,相当于<mvc:default-servlet-handler/>
Spring的配置
因为要使用父子容器的方式,所以还需要配置Spring,在这里不用配置太复杂,直接扫描除了Controller层的其他组件即可
@Configuration
@ComponentScan(value="cn.lynu",excludeFilters={
@Filter(type=FilterType.ANNOTATION,classes={Controller.class})
})
public class RootConfig { }
因为这里只是简单的处理Web层,所以不需要太复杂,在这个Spring配置类中就没有任何方法
使用Java配置SpringMVC的更多相关文章
- 纯java配置SpringMVC
一般情况下,我们会在web.xml下配置好Spring和SpringMVC,并指定好它们的配置文件 是最常用的也是最方便的方法 例如: web.xml <!-- The definition o ...
- JAVA配置&注解方式搭建简单的SpringMVC前后台交互系统
前面两篇文章介绍了 基于XML方式搭建SpringMVC前后台交互系统的方法,博文链接如下: http://www.cnblogs.com/hunterCecil/p/8252060.html htt ...
- springmvc java配置
配置DispatcherServlet DispatcherServlet的是SpringMVC的核心.在这里请求会第一次接触都框架,它要负责将请求路由到其他的组件之中. 使用Java配置将Dispa ...
- IDEA用maven创建springMVC项目和配置(XML配置和Java配置)
1.DEA创建项目 新建一个maven project,并且选择webapp原型. 然后点击next 这里的GroupId和ArtifactID随意填写,但是ArtifactID最好和你的项目一名一样 ...
- 第7章—SpringMVC高级技术—不用web.xml,而使用java类配置SpringMVC
不用web.xml,而使用java类配置SpringMVC DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置 ...
- SSM Spring SpringMVC Mybatis框架整合Java配置完整版
以前用着SSH都是老师给配好的,自己直接改就可以.但是公司主流还是SSM,就自己研究了一下Java版本的配置.网上大多是基于xnl的配置,但是越往后越新的项目都开始基于JavaConfig配置了,这也 ...
- springmvc基于java配置的实现
该案例的github地址:https://github.com/zhouyanger/demo/tree/master/springmvc-noxml-demo 1.介绍 之前搭建SpringMvc项 ...
- 第一节(配置springmvc环境)学习尚硅谷-springmvc视频教程
之前,一直从事C#开发.后来,公司调整后领导决定使用java开发,因此需要收集相关学习资料.该视频教程比较入门,也适合自己,于是边看边写的同时再总结一下便于自己牢记,遇到分歧不对之处望指正. 开发环境 ...
- Spring完全基于Java配置和集成Junit单元测试
要点: 配置继承WebApplicationInitializer的类作为启动类,相当于配置web.xml文件 使用@Configuration注解一个类,在类中的方式使用@Bean注解,则表名该方法 ...
随机推荐
- c++ 容器排序
#include <algorithm> #include <functional> #include <array> #include <iostream& ...
- Bridge(桥接)
意图: 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 适用性: 你不希望在抽象和它的实现部分之间有一个固定的绑定关系.例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换. 类 ...
- Java中的String和StringBuffer
在任何编程语言中,字符串都是我们编写程序时不可避免要用到的常用的数据类型之一. 对于Java初学者而言,当谈到String和StringBuffer的区别时,通常都会有些困惑. 而要弄清楚两者之间的区 ...
- IntelliJ IDEA自定义类和方法注解模板
现在Java开发主流工具应该是Intelij Idea 方便快捷. 本文将主要介绍如何用Intelij Idea配置类及方法的注释模板提高代码注释效率 1. 配置类注解模板 找到配置页面 File - ...
- python开发_sqlite3_绝对完整_博主推荐
'''SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说 没有独立的维护进程,所有的维护都来自于程序本身. 在python中,使用sqlite3创建数据库的连接,当我们指定的数据库文件不 ...
- mysql插入中文数据报错 java.sql.SQLException: Incorrect string value: '\xE5\x90\x88\xE8\xAE\xA1' for column
1.我们创建数据库的时候没有更改数据库的字符集为utf8. 在mysql工具中,右击数据库,->"改变数据库",->选择“基字符集”为utf-8; 2,数据库中表的字符 ...
- IIS网页GZIP压缩
1.开GZIP有什么好处? 答:Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度. 2.如何启用IIS的Gzip压缩功能: 答:首先,如果你需 ...
- TR-069: ACS Discovery
ACS Discovery 原文链接:http://www.qacafe.com/knowledgebase/tr-069-training-series-acs-discovery/ In TR-0 ...
- 流程设计器jQuery + svg/vml(Demo5 - 撤消与重做)
上篇完成了画线,接下来是撤消与重做. 代码:GoFlow_05.zip 演示地址:Demo 微信演示公众号: 另:Silverlight版 Silverlight版Demo
- 重构 demo篇
本文背景为学习重构一书中的一些信息的记录. 该篇以一个影片租赁为背景.通过一层层的重构,最终实现相对来说比较完美的代码. 文中经典语句摘要: “如果它没有坏,就不要动它 .” 用来形容我们工作中一些比 ...