diff --git a/spring/Spring core/SpringMVC.md b/spring/Spring core/SpringMVC.md index 7e7e79a..d84dafd 100644 --- a/spring/Spring core/SpringMVC.md +++ b/spring/Spring core/SpringMVC.md @@ -1,3 +1,66 @@ +- [SpringMVC](#springmvc) + - [SpringMVC简介](#springmvc简介) + - [DispatcherServlet](#dispatcherservlet) + - [Context层次结构](#context层次结构) + - [WebApplicationContext的继承关系](#webapplicationcontext的继承关系) + - [Spring MVC中特殊的bean类型](#spring-mvc中特殊的bean类型) + - [HandlerMapping](#handlermapping) + - [HandlerAdapter](#handleradapter) + - [HandlerExceptionResolver](#handlerexceptionresolver) + - [ViewResolver](#viewresolver) + - [Web MVC Config](#web-mvc-config) + - [Servlet Config](#servlet-config) + - [请求处理过程](#请求处理过程) + - [路径匹配](#路径匹配) + - [Interception](#interception) + - [preHandle](#prehandle) + - [postHandle](#posthandle) + - [afterCompletion](#aftercompletion) + - [Exceptions](#exceptions) + - [Resolver Chain](#resolver-chain) + - [exception resolver的返回规范](#exception-resolver的返回规范) + - [container error page](#container-error-page) + - [视图解析](#视图解析) + - [处理](#处理) + - [重定向](#重定向) + - [转发](#转发) + - [Controller](#controller) + - [AOP代理](#aop代理) + - [Request Mapping](#request-mapping) + - [URI Pattern](#uri-pattern) + - [Pattern Comparasion](#pattern-comparasion) + - [消费media-type](#消费media-type) + - [产生media-type](#产生media-type) + - [Parameters \& Headers](#parameters--headers) + - [handler method](#handler-method) + - [类型转换](#类型转换) + - [Matrix Variable](#matrix-variable) + - [@RequestParam](#requestparam) + - [@RequestHeader](#requestheader) + - [@CookieValue](#cookievalue) + - [@ModelAttribute](#modelattribute) + - [@SessionAttributes](#sessionattributes) + - [@SessionAttribute](#sessionattribute) + - [Multipart](#multipart) + - [@RequestBody](#requestbody) + - [HttpEntity](#httpentity) + - [@ResponseBody](#responsebody) + - [ResponseEntity](#responseentity) + - [Jackson JSON](#jackson-json) + - [@JsonView](#jsonview) + - [Model](#model) + - [@ModelAttribute注解用法](#modelattribute注解用法) + - [@ModelAttribute作用于Controller类中普通方法上](#modelattribute作用于controller类中普通方法上) + - [@ModelAttribute作用于@RequestMapping方法上](#modelattribute作用于requestmapping方法上) + - [DataBinder](#databinder) + - [Model Design](#model-design) + - [Exception](#exception) + - [Controller](#controller-1) + - [CORS](#cors) + - [@CrossOrigin](#crossorigin) + - [spring boot全局配置CORS](#spring-boot全局配置cors) + + # SpringMVC ## SpringMVC简介 SpringMVC是一款基于Servlet API的web框架,并基于前端控制器的模式被设计。前端控制器有一个中央的控制器(DispatcherServlet),通过一个共享的算法来集中分发请求,请求实际是通过可配置的委托组件(@Controller类)来处理的。 diff --git a/spring/spring boot/Spring Boot Async.md b/spring/spring boot/Spring Boot Async.md new file mode 100644 index 0000000..fa49cdf --- /dev/null +++ b/spring/spring boot/Spring Boot Async.md @@ -0,0 +1,18 @@ +# Spring Boot Async +当当前上下文中没有Executor类型的bean对象时,spring boot会自动配置一个ThreadPoolTaskExecutor类型的bean对象,并且将该bean对象和异步task执行(@EnableAsync)和spring mvc异步请求处理关联在一起。 +该默认创建的ThreadPoolTaskExecutor默认使用8个核心线程,并且线程数量可以根据负载动态的增加或者减少。 +可以通过如下方式对ThreadPoolTaskExecutor进行配置: +```properties +# 该线程池最多含有16个线程 +spring.task.execution.pool.max-size=16 +# 有有界队列存放task,上限为100 +spring.task.execution.pool.queue-capacity=100 +# 当线程空闲10s(默认60s)时会进行回收 +spring.task.execution.pool.keep-alive=10s +``` +如果使用@EnableScheduling,一个ThreadPoolTaskScheduler也可以被配置。该线程池默认使用一个线程,但是也可以动态设置: +```properties +spring.task.scheduling.thread-name-prefix=scheduling- +spring.task.scheduling.pool.size=2 +``` +