Spring学习日志之Spring MVC启动配置
对DispatcherServlet进行配置
Spring MVC的配置实际上就是对DispatcherServlet的配置
public class DispatcherServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer
{
	@Override
	protected Class<?>[] getRootConfigClasses()     // 加载自定义的配置类
	{
		return new Class<?>[]{BeanConfig.class, SecurityConfig.class};
	}
	@Override
	protected Class<?>[] getServletConfigClasses()  // 加载web配置类,如viewResolver
	{
		return new Class<?>[]{WebConfig.class};
	}
	@Override
	protected String[] getServletMappings()
	{
		return new String[]{"/"};
	}
}
WebConfig的实现
@Configuration
@EnableWebMvc   // 在此开启WebMvc
@ComponentScan(basePackageClasses = {BasePackageMarker.class})
public class WebConfig extends WebMvcConfigurerAdapter
{
	@Bean
	public ViewResolver viewResolver(TemplateEngine templateEngine)
	{
		ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
		viewResolver.setTemplateEngine(templateEngine);
		viewResolver.setCharacterEncoding("UTF-8");
		return viewResolver;
	}
	@Bean
	public TemplateEngine templateEngine(ITemplateResolver templateResolver)
	{
		SpringTemplateEngine templateEngine = new SpringTemplateEngine();
		templateEngine.setTemplateResolver(templateResolver);
		templateEngine.addDialect(new SpringSecurityDialect());
		return templateEngine;
	}
	@Bean
	public ITemplateResolver templateResolver()
	{
		SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
		templateResolver.setPrefix("/WEB-INF/templates/");
		templateResolver.setSuffix(".html");
		templateResolver.setTemplateMode("HTML5");
		templateResolver.setCharacterEncoding("UTF-8");
		templateResolver.setCacheable(false);
		return templateResolver;
	}
	@Override
	public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer)
	{
		configurer.enable();
	}
}
Spring学习日志之Spring MVC启动配置的更多相关文章
- Spring学习日志之Spring Security配置
		依赖引入 <dependency> <groupId>org.springframework.security</groupId> <artifactId&g ... 
- Spring学习1:Spring基本特性
		http://longliqiang88.github.io/2015/08/14/Spring%E5%AD%A6%E4%B9%A01%EF%BC%9ASpring%E5%9F%BA%E6%9C%AC ... 
- <黑马新秀>Spring学习日志
		# 用于梳理Spring知识点 Spring是分层的Java EE应用全栈轻量级开源框架,以IoC(Inverse Of Control反转控制)和AOP(Aspect Oriented Progra ... 
- Spring学习笔记之五----Spring MVC
		Spring MVC通常的执行流程是:当一个Web请求被发送给Spring MVC Application,Dispatcher Servlet接收到这个请求,通过HandlerMapping找到Co ... 
- Spring学习日志之Bean的装配
		Spring容器负责创建应用程序中的bean并通过依赖注入来协调这些对象之间的关系.但是,作为开发人员,要告诉Spring需要创建哪些bean并且如何将其装配在一起.当描述bean如何装配时,Spri ... 
- spring学习笔记(一) Spring概述
		博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书. 强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ... 
- Spring学习(五)--构建Spring Web应用程序
		一.Spring MVC起步 看过猫和老鼠的小伙伴都可以想象Tom猫所制作的捕鼠器:它的目标 是发送一个小钢球,让它经过一系列稀奇古怪的装置,最后触发捕鼠 器.小钢球穿过各种复杂的配件,从一个斜坡上滚 ... 
- spring学习笔记之spring框架本质
		Spring框架的本质是,开发者在Spring配置文件中使用XML元素进行配置,实际驱动Spring执行相应的代码: 使用<bean.../>元素,实际启动Spring执行无参或有参构造函 ... 
- Java架构师之路 Spring学习笔记(一) Spring介绍
		前言 这是一篇原创的Spring学习笔记.主要记录我学习Spring4.0的过程.本人有四年的Java Web开发经验,最近在面试中遇到面试官总会问一些简单但我不会的Java问题,让我觉得有必要重新审 ... 
随机推荐
- bzoj 1566: [NOI2009]管道取珠
			Description Input 第一行包含两个整数n, m,分别表示上下两个管道中球的数目. 第二行为一个AB字符串,长度为n,表示上管道中从左到右球的类型.其中A表示浅色球,B表示深色球. ... 
- MAMP升级mysql5.6到5.7
			RT 1.先把mamp环境停掉 sudo sh /Applications/MAMP/bin/stop.sh 2.然后使用brew安装mysql5.7 brew install mysql 3.默认安 ... 
- javascript01
			手敲代码01 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ... 
- yum 命令详解
			一. yum 作用: yum 命令是在Fedora 和RedHat 以及SUSE 中基于rpm 的软件包管理器,它可以使系统管理人员交互和自动 ... 
- Java 浅析Thread.join()
			概要 本文分为三部分对 Thread.join() 进行分析: 1. join() 的示例和作用 2. join() 源码分析 3. 对网上其他分析 join() 的文章提出疑问 1. join() ... 
- Redis在APP中的应用
			前言 redis 是内存型数据库,读取data速度远快于mysql和sqlserver,如果将APP中列表信息或者一些常被访问的信息转存至内存上,然后APP通过redis读取内存上的数据,那么APP的 ... 
- Disruptor并发框架(一)简介&上手demo
			框架简介 Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易.这个系统是建立在JVM平台上,其核心是一 ... 
- 【原创】java NIO selector 学习笔记 一
			能力有限,仅仅是自己看源码的一些笔记. 主要介绍 可选通道 和 选择器 选择键(SelectableChannel 和 Selector SelectionKey) 选择器(Selector) 选择 ... 
- Git操作流程,基本命令演示
			任务列表: 有一个中央库Center,和三个工作站A,B,C. 初始化时,代码存放在中央库中,A,B,C三个工作站开始工作之前都要首先从中央库克隆一份代码到本地. 第一个任务:A和B合作修复一个缺陷, ... 
- JS 对象API之判断父对象是否在子对象的原型链上
			语法:父对象.prototype.isPrototypeOf(子对象) 代码栗子: function Student(){ this.name = "小马扎"; ; } var s ... 
