在我的印象中,开发一个web项目首选当然是springmvc,而配置springmvc无非就是web.xml里配置其核心控制器DispatcherServlet.然后把所有的请求都交给它处理,再配个视图解析器,一个注解扫描和一个注解的驱动差不多一个基于springmvc的web项目就搞定了,这么一总结感觉好麻烦啊;然后最近在spring实战一书里刚好看到了基于java的springmvc的配置,感觉瞬间简单高大上了许多,下面记录下如何基于java来搭建springmvc的环境

  首先当然是配置Spring MVC的核心DispatcherServlet了,按照传统的方式,像DispatcherServlet这样的Servlet会配置在web.xml文件中,但是,借助于Servlet 3规范和Spring 3.1的功能增强,我们完全可以基于java来配置它,下面是关键代码:

/**
* @author
* @date 2018/9/4 14:57
* @description 使用java(非xml)为项目配置DispatcherServlet
*/
public class ExcepCollAppInitilizer extends AbstractAnnotationConfigDispatcherServletInitializer { /**
* 此方法返回的带有@Configuration注解的类将会用来配置ContextLoaderListener创建的应用上下文中的bean
* @return
*/
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[]{RootConfig.class};
} /**
* 此方法返回的带有@Configuration注解的类将会用来定义DispatcherServlet应用上下文中的bean
* @return
*/
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[]{WebConfig.class};// 指定配置类
} @Override
protected String[] getServletMappings() {
return new String[]{"/"}; //将DispatcherServlet映射到"/"
}
}

其中RootConfig和WebConfig使我们自己写的配置类,我们重点关注WebConfig,它相当于我们使用xml配置时项目里的springmvc.xml,可以开启组件扫描、配置视图解析器等功能;下面是其代码:

@Configuration
@EnableWebMvc //启用springmvc
@ComponentScan("com.darling") // 开启组件扫描
public class WebConfig extends WebMvcConfigurerAdapter { /**
* 配置JSP试图解析器
* @return
*/
@Bean
public ViewResolver viewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
} /**
* 配置静态资源的处理
* 要求DispatcherServlet将对静态资源的请求转发到Servlet容器中默认的Servlet上,而不是使用DispatcherServlet本身来处理此类请求
* @param configurer
*/
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}

RootConfig的代码:

/**
* @author 董琳琳
* @date 2018/9/4 16:05
* @description
*/
@Configuration
@ComponentScan(basePackages = {"com.darling"},excludeFilters = {@Filter(type = FilterType.ANNOTATION,value = EnableWebMvc.class)})
public class RootConfig {
}

至此,我们基本上已经可以开始使用Spring MVC了,下面是我写的测试类:

@Controller
@RequestMapping("/test")
public class TestController { @RequestMapping("/testJson")
@ResponseBody
public String test(){
return "HELLO,SPRING MVC";
} @RequestMapping("testJsp")
public String test1(){
return "index";
} }

测试效果

跳转到JSP页面:

返回json:

基于java代码的springmvc配置的更多相关文章

  1. 基于java代码的Spring-mvc框架配置

     Spring 版本 4.3.2   maven项目 1.首先上项目目录图,主要用到的配置文件,略去css和js的文件 引包: 2.主要代码: (1)NetpageWebAppInitializer类 ...

  2. [译]17-spring基于java代码的配置元数据

    spring还支持基于java代码的配置元数据.不过这种方式不太常用,但是还有一些人使用.所以还是很有必要介绍一下. spring基于java代码的配置元数据,可以通过@Configuration注解 ...

  3. 开涛spring3(12.4) - 零配置 之 12.4 基于Java类定义Bean配置元数据

    12.4  基于Java类定义Bean配置元数据 12.4.1  概述 基于Java类定义Bean配置元数据,其实就是通过Java类定义Spring配置元数据,且直接消除XML配置文件. 基于Java ...

  4. Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)

    之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...

  5. xml配置和基于java类的bean配置搭配使用

    如果同时使用了xml配置,和java类的bean配置(当然估计项目中一般不会这样), 在初始化容器指定资源文件的时候可能会比较麻烦 此时我们可以把基于java类的bean配置整合到xml中,或xml的 ...

  6. 用JAVA代码获取Weblogic配置的JNDI 数据源连接

    第一步:生成与JDK版本对应的weblogicjar,利用cmd 进入到weblogic_home 路径下进入到server/lib目录,然后运行  JDK  1.6 命令 "java -j ...

  7. 使用Java代码自定义Ribbon配置

    很多场景下,需要实现不同的微服务采用不同的策略,例如修改Ribbon的负载均衡规则等.Spring Cloud允许使用Java代码自定义Ribbon的配置. 在Spring Cloud中,Ribbon ...

  8. 什么是基于Java的Spring注解配置? 给一些注解的例子?

    基于Java的配置,允许你在少量的 Java注解 的帮助下,进行你的大部分Spring配置而非通过XML文件. 以@Configuration 注解为例,它用来标记类可以当做一个bean的定义,被Sp ...

  9. 什么是基于 Java 的 Spring 注解配置?

    基于 Java 的配置,允许你在少量的 Java 注解的帮助下,进行你的大部分 Spring 配置而非通过 XML 文件. 以@Configuration 注解为例,它用来标记类可以当做一个 bean ...

随机推荐

  1. tomcat 中项目配置文件统一目录设置

    在tomcat 安装目录中 conf 下的  catalina.properties 文件中 有个  shared.loader= 配置为   shared.loader="${catali ...

  2. es6中promise ALL Race Resolve Reject finish的实现

    function mypromise(func){ this.statue = "pending"; this.data = null; this.resolveCallback ...

  3. jieba库的使用和好玩的词云

    1.jieba库基本介绍 (1).jieba库概述 jieba是优秀的中文分词第三方库 - 中文文本需要通过分词获得单个的词语         - jieba是优秀的中文分词第三方库,需要额外安装 - ...

  4. 基于Docker的Mysql主从复制搭建

    来源:https://www.cnblogs.com/songwenjie/p/9371422.html?tdsourcetag=s_pctim_aiomsg   为什么基于Docker搭建? 资源有 ...

  5. MVC与MVVM关系图解

  6. jquery表单提交获取数据(带toast dialog)

    最近写了一个召集令,传统表单提交注册.写写遇到的费时间的点与解决办法 git项目地址:form-demo(针对于手机版,懒人可以直接使用,有排版和样式) demo使用Jquery,toast使用jqu ...

  7. 关于window.localtion的用法几点总结

    参考链接: http://blog.csdn.net/cui_angel/article/details/7957274(1)window.location.pathname设置或获取对象指定的文件名 ...

  8. 【网址】PHP参考文档

    在线阅读:http://php.net/docs.php 离线下载:http://php.net/download-docs.php

  9. 229. Majority Element II求众数II

    网址:https://leetcode.com/problems/majority-element-ii/ 参考:https://blog.csdn.net/u014248127/article/de ...

  10. Gson反序列化Map,整型自动转换为浮点型

    一 坑 场景:将Map<String,Object>结果序列化后放入redis缓存,发现反序列化后Integer类型自动转换成了Double类型 二 测试重现 @Test public v ...