// 核心配置类
package spittr.config;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{@Overrideprotected Class<?>[] getRootConfigClasses() {// TODO Auto-generated method stubreturn new Class<?>[] {RootConfig.class};}@Overrideprotected Class<?>[] getServletConfigClasses() {// 指定配置类return new Class<?>[] {WebConfig.class};}/*** 将一个或多个路径映射到DispatcherServlet上*/@Overrideprotected String[] getServletMappings() {// 将DispatcherServlet映射到“/”return new String[] {"/"};}}
package spittr.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;@Configuration
@EnableWebMvc // 启用Spring MVC
@ComponentScan("spittr.web") // 启用组件扫描
public class WebConfig implements WebMvcConfigurer {/*** 配置JSP视图解析器* * @return*/@Beanpublic ViewResolver viewResolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/WEB-INF/views/");resolver.setSuffix(".jsp");resolver.setExposeContextBeansAsAttributes(true);return resolver;}@Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {configurer.enable();}}
package spittr.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;@Configuration
@ComponentScan(basePackages= {"spitter"},excludeFilters= {@Filter(type=FilterType.ANNOTATION, value=EnableWebMvc.class)})
public class RootConfig {}
package spittr.web; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class HomeController {static {System.out.println("=============HomeController============");}@RequestMapping("/home")public String home() {System.out.println("hellow");return "home";}
}

转载于:https://www.cnblogs.com/caoleiCoding/p/9270510.html

Spring MVC零配置(全注解)(版本5.0.7)相关推荐

  1. Servlet 3 + Spring MVC零配置:去除所有xml

    在一些基于Spring/Spring MVC的Java Web项目中,总是会有一些xml配置文件,如web.xml.applicationContext.xml等,本文的目标即消灭这些xml配置文件, ...

  2. spring boot 源码解析15-spring mvc零配置

    前言 spring boot 是基于spring 4 的基础上的一个框架,spring 4 有一个新特效–>基于java config 实现零配置.而在企业的实际工作中,spring 都是和sp ...

  3. Spring MVC 中的基于注解的 Controller

    为什么80%的码农都做不了架构师?>>>    Spring MVC 中的基于注解的 Controller @Controller 基于注解的 Controller   终于来到了基 ...

  4. Spring MVC 事务配置

    Spring MVC事务配置 要了解事务配置的所有方法,请看一下<Spring事务配置的5种方法> 本文介绍两种配置方法: 一.      XML,使用tx标签配置拦截器实现事务 一.   ...

  5. spring boot之Spring Mvc开发和常用注解说明

    spring boot之Spring Mvc开发和常用注解说明 Spring boot主要用于开发微服务接口.所以采用的控制层注解主要是restful形式. 创建微服务: 与上一篇文章一致. 依赖多一 ...

  6. spring mvc mysql配置_spring mvc配置数据库连接

    ACM 配置中心实战:Spring + MyBatis + Druid + ACM 很多基于 Spring MVC 框架的 Web 开发中,Spring + MyBatis + Druid 是一个黄金 ...

  7. Spring boot的Spring MVC自动配置原理

    Spring MVC自动配置 搜索WebMvcAutoConfiguration 查询ContentNegotiatingViewResolver ContentNegotiatingViewReso ...

  8. android 8.0 華為m3,华为揽阅M3平板配置全曝光:8.0英寸+快充+麒麟950

    [环球科技综合报道]华为已确认将于2016年9月1日,在德国柏林IFA 2016展会之前召开新闻发布会.据外媒8月23日报道,华为揽阅M3 8.0英寸平板电脑配置信息已在网上曝光,有望在发布会中亮相. ...

  9. Java连接redshift数据库_配置 JDBC 驱动程序版本 1.0 连接 - Amazon Redshift

    本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. 配置 JDBC 驱动程序版本 1.0 连接 您可以使用 JDBC 驱动程序版本 1.0 连接从许多第三方 SQL 客户端工 ...

最新文章

  1. linux下创建多进程,linux之多进程fork:进程创建
  2. python中truncate的用法_在Python中操作文件之truncate()方法的使用教程
  3. Java反射xml数据类
  4. python设置label的位置_Python3 tkinter基础 Label pack 设置控件在窗体中的位置
  5. Python爬虫项目:抓取智联招聘信息
  6. 二叉树的中序遍历_94. 二叉树的中序遍历 - 中等
  7. Java中 输入字符串的时候next()和nextLine()有什么区别
  8. 联想笔记本那些有手写功能_联想笔记本如何使用vista自带的手写输入法tablet pc...
  9. Python学习笔记:第十四站 百宝箱
  10. 苏宁回应股权质押给淘宝;日本政府用 AI 帮民众找对象;魅族回应 “暗中给手机植入木马” | EA周报...
  11. 李秘书讲写作:我讲写作课你愿意听吗
  12. 功放限幅保护_限幅放大器功能
  13. OpenBmc开发错误6:gyp ERR! configure error gyp ERR! stack Error: socket hang up
  14. 从简单的数据表中学习oracle的窗口函数使用
  15. Arista EOS log level
  16. 红灯还是绿灯?脱欧协议迎表决,英站上分叉路口
  17. Kong静态资源配置(直接访问kong返回静态资源)
  18. springboot+websocket构建在线聊天室(群聊+单聊)
  19. 74HC245的作用
  20. swf使用flash的替换方案

热门文章

  1. 【转】谈谈三层架构中MODEL的作用
  2. Fragment详解之四——管理Fragment(2)
  3. HTML ol 标签的 type 属性
  4. 在github上创建新分支
  5. .NET完全手动搭建三层B/S架构
  6. TabSpec和TabHost实例
  7. POJ 1001 Exponentiation C++解题报告 JAVA解题报告
  8. golang中string长度
  9. [译]Effective Kotlin系列之探索高阶函数中inline修饰符(三)
  10. linux yum源安装