WebConfig类
- package com.ssm.yjblogs.config;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.concurrent.Executor;
- import org.springframework.context.annotation.Bean;
- 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.http.MediaType;
- import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
- import org.springframework.scheduling.annotation.AsyncConfigurerSupport;
- import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.servlet.HandlerAdapter;
- import org.springframework.web.servlet.ViewResolver;
- import org.springframework.web.servlet.config.annotation.EnableWebMvc;
- import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
- import org.springframework.web.servlet.view.InternalResourceViewResolver;
- @Configuration
- //定义Spring MVC扫描的包
- @ComponentScan(value="com.*", includeFilters= {@Filter(type = FilterType.ANNOTATION, value = Controller.class)})
- //启动Spring MVC配置 P389
- @EnableWebMvc
- //使用@EnableAsync表明支持异步调用,而我们重写了抽象类AsyncConfigurerSupport的getAsyncExecutor方法
- //它是获取一个任务池,当在Spring环境中遇到注解@Async就会启动这个任务池的一条线程去运行对应的方法,这样便能执行异步了。
- //@EnableAsync
- public class WebConfig extends AsyncConfigurerSupport {
- /***
- * 通过注解 @Bean 初始化视图解析器
- * @return ViewResolver 视图解析器
- */
- @Bean(name="internalResourceViewResolver")
- public ViewResolver initViewResolver() {
- InternalResourceViewResolver viewResolver =new InternalResourceViewResolver();
- //设置前缀和后缀,这样就能获取由控制器返回的视图逻辑名,进而找到对应的JSP文件 P436
- viewResolver.setPrefix("/WEB-INF/jsp/");//前缀
- viewResolver.setSuffix(".jsp");//后缀
- return viewResolver;
- }
- /**
- * 初始化RequestMappingHandlerAdapter,并加载Http的Json转换器
- * @return RequestMappingHandlerAdapter 对象
- */
- //注解@ResponseBody将标记SpringMVC,将响应结果转变为JSON,这样在控制器返回结果后,在处理器内转变为JSON P453
- @Bean(name="requestMappingHandlerAdapter")
- public HandlerAdapter initRequestMappingHandlerAdapter() {
- //创建RequestMappingHandlerAdapter适配器
- RequestMappingHandlerAdapter rmhd = new RequestMappingHandlerAdapter();
- //HTTP JSON转换器
- MappingJackson2HttpMessageConverter jsonConverter
- = new MappingJackson2HttpMessageConverter();
- //MappingJackson2HttpMessageConverter接收JSON类型消息的转换
- MediaType mediaType = MediaType.APPLICATION_JSON_UTF8;
- List<MediaType> mediaTypes = new ArrayList<MediaType>();
- mediaTypes.add(mediaType);
- //加入转换器的支持类型
- jsonConverter.setSupportedMediaTypes(mediaTypes);
- //往适配器加入json转换器
- rmhd.getMessageConverters().add(jsonConverter);
- return rmhd;
- }
- // @Override
- // public Executor getAsyncExecutor() {
- // ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
- // taskExecutor.setCorePoolSize(5);
- // taskExecutor.setMaxPoolSize(10);
- // taskExecutor.setQueueCapacity(200);
- // taskExecutor.initialize();
- // return taskExecutor;
- // }
- }
无行号版本:
- package com.ssm.yjblogs.config;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.concurrent.Executor;
- import org.springframework.context.annotation.Bean;
- 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.http.MediaType;
- import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
- import org.springframework.scheduling.annotation.AsyncConfigurerSupport;
- import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.servlet.HandlerAdapter;
- import org.springframework.web.servlet.ViewResolver;
- import org.springframework.web.servlet.config.annotation.EnableWebMvc;
- import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
- import org.springframework.web.servlet.view.InternalResourceViewResolver;
- @Configuration
- //定义Spring MVC扫描的包
- @ComponentScan(value="com.*", includeFilters= {@Filter(type = FilterType.ANNOTATION, value = Controller.class)})
- //启动Spring MVC配置 P389
- @EnableWebMvc
- //使用@EnableAsync表明支持异步调用,而我们重写了抽象类AsyncConfigurerSupport的getAsyncExecutor方法
- //它是获取一个任务池,当在Spring环境中遇到注解@Async就会启动这个任务池的一条线程去运行对应的方法,这样便能执行异步了。
- //@EnableAsync
- public class WebConfig extends AsyncConfigurerSupport {
- /***
- * 通过注解 @Bean 初始化视图解析器
- * @return ViewResolver 视图解析器
- */
- @Bean(name="internalResourceViewResolver")
- public ViewResolver initViewResolver() {
- InternalResourceViewResolver viewResolver =new InternalResourceViewResolver();
- //设置前缀和后缀,这样就能获取由控制器返回的视图逻辑名,进而找到对应的JSP文件 P436
- viewResolver.setPrefix("/WEB-INF/jsp/");//前缀
- viewResolver.setSuffix(".jsp");//后缀
- return viewResolver;
- }
- /**
- * 初始化RequestMappingHandlerAdapter,并加载Http的Json转换器
- * @return RequestMappingHandlerAdapter 对象
- */
- //注解@ResponseBody将标记SpringMVC,将响应结果转变为JSON,这样在控制器返回结果后,在处理器内转变为JSON P453
- @Bean(name="requestMappingHandlerAdapter")
- public HandlerAdapter initRequestMappingHandlerAdapter() {
- //创建RequestMappingHandlerAdapter适配器
- RequestMappingHandlerAdapter rmhd = new RequestMappingHandlerAdapter();
- //HTTP JSON转换器
- MappingJackson2HttpMessageConverter jsonConverter
- = new MappingJackson2HttpMessageConverter();
- //MappingJackson2HttpMessageConverter接收JSON类型消息的转换
- MediaType mediaType = MediaType.APPLICATION_JSON_UTF8;
- List<MediaType> mediaTypes = new ArrayList<MediaType>();
- mediaTypes.add(mediaType);
- //加入转换器的支持类型
- jsonConverter.setSupportedMediaTypes(mediaTypes);
- //往适配器加入json转换器
- rmhd.getMessageConverters().add(jsonConverter);
- return rmhd;
- }
- // @Override
- // public Executor getAsyncExecutor() {
- // ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
- // taskExecutor.setCorePoolSize(5);
- // taskExecutor.setMaxPoolSize(10);
- // taskExecutor.setQueueCapacity(200);
- // taskExecutor.initialize();
- // return taskExecutor;
- // }
- }
WebConfig类的更多相关文章
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- 基于java代码的Spring-mvc框架配置
Spring 版本 4.3.2 maven项目 1.首先上项目目录图,主要用到的配置文件,略去css和js的文件 引包: 2.主要代码: (1)NetpageWebAppInitializer类 ...
- 基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置
经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - ...
- 【原创】Spring MVC项目搭建(使用Java配置)
一.使用Intellij idea,新建maven项目,选择maven-archetype-webapp. 二.在src/main下新建文件夹,命名为java,并标注为source folder. 三 ...
- Spring Boot 快速入门笔记
Spirng boot笔记 简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发 ...
- SpringBoot入门教程(十一)过滤器和拦截器
在做web开发的时候,过滤器(Filter)和拦截器(Interceptor)很常见,通俗的讲,过滤器可以简单理解为“取你所想取”,忽视掉那些你不想要的东西:拦截器可以简单理解为“拒你所想拒”,关心你 ...
- 朱晔和你聊Spring系列S1E4:灵活但不算好用的Spring MVC
阅读PDF版本 本文会以一些例子来展现Spring MVC的常见功能和一些扩展点,然后我们来讨论一下Spring MVC好用不好用. 使用SpringBoot快速开始 基于之前的parent模块,我们 ...
- SpringBoot(十一)过滤器和拦截器
v博客前言 在做web开发的时候,过滤器(Filter)和拦截器(Interceptor)很常见,通俗的讲,过滤器可以简单理解为“取你所想取”,忽视掉那些你不想要的东西:拦截器可以简单理解为“拒你所想 ...
- 在ASP.NET Web API中实现CORS(跨域资源共享)
默认情况下,是不允许网页从不同的域访问服务器资源的,访问遵循"同源"策略的原则. 会遇到如下的报错: XMLHttpRequest cannot load http://local ...
随机推荐
- day2_jmeter断言
断言就是:检查返回结果,测试是否通过,就是自动帮你校验结果用的 1)添加响应断言 我们模式匹配规格选择包括
- Tacacs+认证详细调研
1 .TACACS+概述 1.1 什么是TACACS+ TACACS+(Terminal Access Controller Access Control System,终端访问控制器控制系统协议 ...
- Java如何对List集合的操作方法(一)
目录: list中添加,获取,删除元素: list中是否包含某个元素: list中根据索引将元素数值改变(替换): list中查看(判断)元素的索引: 根据元素索引位置进行的判断: 利用list中索引 ...
- 洛谷P4823 拯救小矮人 [TJOI2013] 贪心+dp
正解:贪心+dp 解题报告: 传送门! 我以前好像碰到过这题的说,,,有可能是做过类似的题qwq? 首先考虑这种显然是dp?就f[i][j]:决策到了地i个人,跑了j个的最大高度,不断更新j的上限就得 ...
- pyinstaller-打包python程序为exe文件
pyinstaller ---转载文章 视频:https://www.bilibili.com/video/av21670971/ PyInstaller可以用来打包python应用程序,打包完的程序 ...
- rpm 安装软件包
RPM 是RedHat Package Manager (RedHat软件包管理工具)类似windows里面的“添加/删除程序”,rpm执行安装包 RPM执行安装.删除.更新 常用命令组合 -ivh: ...
- what's the python之函数及装饰器
what's the 函数? 函数的定义:(return是返回值,可以没有,不过没有的话就返回了None) def wrapper(参数1,参数2,*args,默认参数,**kwargs): '''注 ...
- 006-docker-安装-nginx
1.搜索镜像 docker search nginx 2.拉取合适镜像 docker pull nginx docker images 3.使用镜像 docker run -p 8080:80 --n ...
- python按修改时间顺序排列文件
import os def sort_file_by_time(file_path): files = os.listdir(file_path) if not files: return else: ...
- vue 获取屏幕宽高 width height
/** * 获取屏幕宽高 */ Vue.prototype.getViewportSize = function(){ return { width: window.innerWidt ...