摘要:
接口 public interface ViewResolver { /** * 通过viewName和locale查找View * @param viewName * @param locale * @return * @throws Exception */ @Nullable View res 阅读全文
摘要:
接口 public interface HandlerAdapter { /** * 是否能处理指定Handler * @param var1 * @return */ boolean supports(Object var1); /** * 处理Handler * @param var1 * @p 阅读全文
摘要:
接口 public interface HandlerAdapter { /** * 是否能处理指定Handler * @param var1 * @return */ boolean supports(Object var1); /** * 处理Handler * @param var1 * @p 阅读全文
摘要:
我们常用的使用方式就是@Contorller 和@RequsetMappig方式 就是通过RequestMappingHandlerMapping实现 类图 AbstractHandlerMapping上一篇已经说过了 我们主要看红线框起来的 AbstractHandlerMethodMapping 阅读全文
摘要:
接口 public interface HandlerMapping { /** * 根据requst获得 对应的Handler * @param var1 * @return * @throws Exception */ HandlerExecutionChain getHandler(HttpS 阅读全文
摘要:
mysql最大连接数量 一般我们应用程序要设置连接池大小,比如我们一台物理机设置的是200 集群部署4台 最大峰值会是800 但是mysql默认是151 当链接获取完,同时连接池也不会释放,其他程序会报错获取连接超时 所以当程序慢,我们排查不能只看mysql负载,还要结合以下信息一起看 默认取值范围 阅读全文
摘要:
5.7以上重复数据问题 order by limit会出现数据重复问题 我是5.6版本无法测试,5.7及其以上版本会出现 order by的列有相同的值时 同时未做索引时, mysql会随机选取这些行 文档地址:https://dev.mysql.com/doc/refman/5.7/en/limi 阅读全文
摘要:
为什么要重构 重构是时刻保证代码质量的一种手段,避免代码腐化到不可维护的地步,同时也是避免前期过度设计。优秀的产品都是迭代出来的,我们不可能提前预知未来需求,所以重构也是无法避免的。 重构的二种方式 大型重构 对 系统、模块、代码结构、类与类之间的关系等的重构,重构的手段有:分层、模块化、解耦、抽象 阅读全文
摘要:
流程图 摘自:https://www.tianxiaobo.com/2018/06/29/Spring-MVC-原理探秘-一个请求的旅行过程/ 继承关系图 1.GenericServlet 只是一个抽象类提供一些基础的模板 具体实现由以下子类实现 2.HTTPServlet提供了对service的实 阅读全文
摘要:
说明 前面我们看到了是dispatcher负责组件的初始化 调用链: org.springframework.web.servlet.HttpServletBean#init -> org.springframework.web.servlet.FrameworkServlet#initServle 阅读全文