package com.smartmap.sample.ch1.conf;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.format.datetime.DateFormatter;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.validation.MessageCodesResolver;
import org.springframework.validation.Validator;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import com.smartmap.sample.ch1.entity.User; @Configuration
public class MvcConfiguration implements WebMvcConfigurer { @Override
public void configurePathMatch(PathMatchConfigurer configurer) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.configurePathMatch(configurer);
} @Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.configureContentNegotiation(configurer);
} @Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.configureAsyncSupport(configurer);
} @Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.configureDefaultServletHandling(configurer);
} @Override
public void addFormatters(FormatterRegistry registry) {
// TODO Auto-generated method stub
registry.addFormatter(new DateFormatter("YYYY-MM-dd HH:mm:ss"));
WebMvcConfigurer.super.addFormatters(registry);
} @Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new SessionHandlerInteceptor()).addPathPatterns("/admin/**");
WebMvcConfigurer.super.addInterceptors(registry);
} @Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.addResourceHandlers(registry);
} @Override
public void addCorsMappings(CorsRegistry registry) {
// TODO Auto-generated method stub
registry.addMapping("/**");
WebMvcConfigurer.super.addCorsMappings(registry);
} @Override
public void addViewControllers(ViewControllerRegistry registry) {
// TODO Auto-generated method stub
registry.addViewController("/index.html").setViewName("login");
registry.addRedirectViewController("/system/index.html", "/system");
WebMvcConfigurer.super.addViewControllers(registry);
} @Override
public void configureViewResolvers(ViewResolverRegistry registry) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.configureViewResolvers(registry);
} @Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.addArgumentResolvers(resolvers);
} @Override
public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.addReturnValueHandlers(handlers);
} @Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.configureMessageConverters(converters);
} @Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.extendMessageConverters(converters);
} @Override
public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.configureHandlerExceptionResolvers(resolvers);
} @Override
public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.extendHandlerExceptionResolvers(resolvers);
} @Override
public Validator getValidator() {
// TODO Auto-generated method stub
return WebMvcConfigurer.super.getValidator();
} @Override
public MessageCodesResolver getMessageCodesResolver() {
// TODO Auto-generated method stub
return WebMvcConfigurer.super.getMessageCodesResolver();
} class SessionHandlerInteceptor implements HandlerInterceptor { @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
User user = (User) request.getSession().getAttribute("user");
if (user == null) {
response.sendRedirect("/login.html");
return false;
}
return HandlerInterceptor.super.preHandle(request, response, handler);
} @Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
// TODO Auto-generated method stub
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
} @Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
Exception ex) throws Exception {
// TODO Auto-generated method stub
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
} }
}

Spring Boot--02MVC设置的更多相关文章

  1. 【Spring Boot】Spring Boot项目设置多个配置文件,并在生产环境中的Tomcat设置对应的配置文件

    1.修改Spring Boot项目配置文件 除了主配置文件,另外创建2个配置文件,注意命名要用application-*.properties 主配置文件中写入,使用dev作为开发配置 spring. ...

  2. 【轮询】【ajax】【js】【spring boot】ajax超时请求:前端轮询处理超时请求解决方案 + spring boot服务设置接口超时时间的设置

    场景描述: ajax设置timeout在本机测试有效,但是在生产环境等外网环境无效的问题 1.ajax的timeout属性设置 前端请求超时事件[网络连接不稳定时候,就无效了] var data = ...

  3. spring boot controller设置 @Transactional 不回滚的解决办法

    @Transactional @ApiOperation(value = "添加一个用户信息") @RequestMapping(value = "/create&quo ...

  4. Spring boot自动设置包依赖,根本不用记,

    maven有和多依赖包,每次搭建都很麻烦,其实IDE ,有个小技巧,就是如图所示,你给需要的技术,加入进去,自动就会生成包和相关依赖,根本无需自己配置

  5. 玩转spring boot——ajax跨域

    前言  java语言在多数时,会作为一个后端语言,为前端的php,node.js等提供API接口.前端通过ajax请求去调用java的API服务.今天以node.js为例,介绍两种跨域方式:Cross ...

  6. Spring Boot 学习(1)

    文 by / 林本托 Tip 做一个终身学习的人. Spring Boot 初体验 Spring Boot 包含了很多 start(Spring boot 中 的叫法,就是一个模块,后文统一称模块,便 ...

  7. 使用Spring Session实现Spring Boot水平扩展

    小编说:本文使用Spring Session实现了Spring Boot水平扩展,每个Spring Boot应用与其他水平扩展的Spring Boot一样,都能处理用户请求.如果宕机,Nginx会将请 ...

  8. Spring boot参考指南

    介绍 转载自:https://www.gitbook.com/book/qbgbook/spring-boot-reference-guide-zh/details 带目录浏览地址:http://ww ...

  9. Spring Boot 多环境如何配置

    Spring Boot 开发环境.测试环境.预生产环境.生产环境多环境配置 通常一个公司的应程序可能在开发环境(dev).测试环境(test).生产环境(prod)中运行.那么是不是需要拷贝不同的安装 ...

  10. 如何在Spring Boot中使用Cookies

    一. 导读 本文大纲 读取HTTP Cookie 设置HTTP Cookie 读取所有Cookie[] 为Cookie设置过期时间 Https与Cookie HttpOnly Cookie 删除Coo ...

随机推荐

  1. 读/写锁的实现和应用(高并发状态下的map实现)

    程序中涉及到对一些共享资源的读和写操作,且写操作没有读操作那么频繁.在没有写操作的时候,两个线程同时读一个资源没有任何问题,所以应该允许多个线程能在同时读取共享资源.但是如果有一个线程想去写这些共享资 ...

  2. chrome inspect 远程调试H5

    chrome://inspect/#devices 一个内置于chrome的远程调试指令,满足远程调试的几个必须条件 1,能够访问https://chrome-devtools-frontend.ap ...

  3. JS: RegExp(正则表达式)

    RegExp (包含ES2018新特性) 注意:本次所有代码都仅在Chrome 70中进行测试 正则表达式是什么? 正则表达式是用于匹配字符串中字符组合的模式.(mdn) 简单来说,正则表达式是用来提 ...

  4. centos 7 初始化脚本

    #!/bin/bash # 时间: 2018-11-21 # 作者: HuYuan # 描述: CentOS 7 初始化脚本 # 加载配置文件 if [ -n "${1}" ];t ...

  5. Java之IO(四)DataInputStream和DataOutputStream

    转载请注明源出处:http://www.cnblogs.com/lighten/p/6986155.html 1.前言 DataInputStream和DataOutputStream分别继承了Fil ...

  6. 分区助手官网使用教程(专业版、绿色版和WinPE版)(图文详解)

    不多说,直接上干货! 详情见 http://www.disktool.cn/jiaocheng/index.html http://www.disktool.cn/jiaocheng/index2.h ...

  7. 关于作用域范围Scope

    举个例子,如下: public class C { public int a = 2; public void test(int b) { int c = 3; for (int d = 3; a & ...

  8. vmware不显示usb图标解决办法

    一.1.打开service.msc服务.​ 2.在“服务”中启动“VMware USB Arbitration Service”服务项.​ 3.重启vmware​ 二.如果有安全软件要设置vmware ...

  9. C++对象的内存布局以及虚函数表和虚基表

    C++对象的内存布局以及虚函数表和虚基表 本文为整理文章, 参考: http://blog.csdn.net/haoel/article/details/3081328 http://blog.csd ...

  10. Jav实现F(n)=F(n-1)+F(n-2)+.....+F(1)+1

    private static int func(int count) {  // TODO Auto-generated method stub  int cou = 0;  if(count==1) ...