Emil's Blog

SpringMvc之LocaleResolver

  |  

LocaleResolver,其主要作用在于根据不同的用户区域展示不同的视图,而用户的区域也称为 Locale,该信息是可以由前端直接获取的。通过这种方式,可以实现一种国际化的目的,比如针对美国用户可以提供一个视图,而针对中国用户则可以提供另一个视图。

LocaleResolver

SpringMvc之ViewResolver

  |  

ViewResolver的主要作用是把一个逻辑上的视图名称解析为一个真正的视图,SpringMVC 中用于把View对象呈现给客户端的是View对象本身,而ViewResolver只是把逻辑视图名称解析为对象的View对象。
DispatcherServlet的 doDispatch 方法中,调用HandlerAdapter的 handle 方法返一个ModelAndView对象。
调用 applyDefaultViewName 方法决定是否返回默认视图,调用 processDispatchResult 处理 handler 的调用结果。

ViewResolver

SpringMvc之MultipartResolver

  |  

MultipartResolver 用于处理文件上传,当收到请求时 DispatcherServlet 的 checkMultipart() 方法会调用 MultipartResolver 的 isMultipart() 方法判断请求中是否包含文件。
如果请求数据中包含文件,则调用 MultipartResolver 的 resolveMultipart() 方法对请求的数据进行解析,然后将文件数据解析成 MultipartFile 并封装在 MultipartHttpServletRequest (继承了 HttpServletRequest) 对象中,最后传递给 Controller

MultipartResolver

SpringMvc之HandlerAdapter

  |  

SpringMvc 中HandlerMappingHandlerAdapter一般是对应出现(并不是一一对应,一个HandlerAdapter可以匹配处理多个HandlerMapping,一个HandlerMapping应该也可以被多个HandlerAdapter处理,但具体配置时应该只是一个,配置多个没有意义,只会被 order 值小的HandlerAdapter处理)。
DispatcherServlet的 doDispatch 方法中,调用 getHandlerAdapter ,根据 mappedHandler 返回相应的HandlerAdapter

HandlerAdapter

Mybatis-缓存模块

  |  

数据源对应的是MyBatis的 datasource。

缓存用于减轻数据压力,提高数据库性能,Mybaits提供一级缓存和二级缓存。
1.一级缓存:SqlSession级别的缓存,默认开启。在操作数据库时需要构造sqlSession对象,在对象中有一个 key 为 hashCode + sqlId + sql,value 为查询结果映射的 java 对象的 HashMap 数据结构用于存储缓存数据。不同的sqlSession之间的缓存数据区域是互相不影响的,在同一个sqlSession中两次执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到内存缓存中,第二次会从缓存中获取数据而不再从数据库查询,从而提高查询效率。当一个sqlSession执行插入、更新、删除、结束操作后为了避免脏读会清空该sqlSession中的一级缓存。
2.二级缓存:mapper namespace 级别的缓存,默认不开启,需要在全局参数及 mapper.xml 中配置开启并且缓存对象 value 必须实现序列化。在缓存对象中有一个 key 为 hashCode + sqlId + sql ,value 为查询结果映射的 java 对象的 HashMap 数据结构用于存储缓存数据。不同的sqlSession两次执行相同 namespace 下的 sql 且向 sql 中传递参数也相同则最终执行相同的 sql 语句,第一次执行完毕会将数据库中查询的数据写到内存缓存中,第二次会从缓存中获取数据而不再从数据库查询,从而提高查询效率。当一个sqlSession执行插入、更新、删除操作后为了避免脏读会清空该 namespace 中的二级缓存。二级缓存一般应用于访问多的粗粒度查询请求且用户对查询结果实时性要求不高,根据数据变化频率设置缓存刷新间隔 flushInterval 来自动清空缓存。

mybatis-cache



Copyright © 2019 | 版权所有 豫ICP备18037410号-2

Power by Hexo   Theme by Material X    Re-Ported by Emil

载入天数...载入时分秒..., 总访问量 : 字数统计:43.6k
您的浏览器不支持canvas标签,请您更换浏览器