看完后浪,感慨良多… 在程序员圈子,听得最多的便是”35岁中年危机“。 危机 其实不仅仅存在“35岁危机”,还有“毕业危机”,“被裁员危机”,不仅仅在程序员圈子,几乎所有圈子都是这样,就像刚毕业的大学生说的:毕业等于失业。现在的 … 继续阅读 如何提升自己?
Tomcat 源码分析总结与收获
1. Tomcat 类加载机制 在Tomcat中,分别包含以下几个加载器: Common类加载器,用于加载Tomcat和各个Web应用共享的类 Share类加载器,用于加载各个Web共享的类 Server类加载器,用于加载Tomcat各个类 … 继续阅读 Tomcat 源码分析总结与收获
MyBatis代码整洁之道之设计模式
到目前为止,MyBatis的源代码也看的七七八八了,不得不说MyBatis的代码写的真的很不错,逻辑清晰的同时功能还很齐全,同时可以发现,MyBatis中使用了非常多的设计模式,接下来简单总结下: 建造者模式 在MyBaits的各种对象构建 … 继续阅读 MyBatis代码整洁之道之设计模式
设计模式之组合模式
之前做一个需求,设计一个设置程序,设置程序中包含不同的页面,页面中又有不同的分组,每个分组下面又有不同的项,每个项包含不同的控件。 当用户点击保存的时候,需要将所有的配置,都映射并保存在配置文件中。 之前做的时候,是将每个控件都绑定一个映射 … 继续阅读 设计模式之组合模式
MyBatis 的秘密(九)插件
Plugins 一款好的框架,都是支持定制化的,MyBatis也不例外,MyBatis支持用户自定义插件,在MyBatis的几个核心类的方法调用前,后进行统一的处理。使用方式如下: 首先,定义插件行为,实现Interceptor接口,同时, … 继续阅读 MyBatis 的秘密(九)插件
MyBatis 的秘密(八)动态SQL
动态SQL 说到动态SQL,就不得不提Script,Java作为一个静态语音,代码需要先编译,然后再运行,虽然带来了效率,但是却损失了灵活性。 Spring为此还专门提供了一套SpEL用来封装Java脚本语言API 在MyBatis中,也支 … 继续阅读 MyBatis 的秘密(八)动态SQL
MyBatis 的秘密(七)反射
MyBatis作为一款ORM框架,主要通过XML定义Object,这就难免用到反射,虽然JDK自带的反射已经方便使用,但是MyBatis依然结合业务功能,将反射功能封装成一个更加易用的包,这个包就在reflection中。 在解析MyBat … 继续阅读 MyBatis 的秘密(七)反射
MyBatis 的秘密(六)缓存
缓存 众所周知的,MyBatis 内置了二级缓存,对于一级缓存是默认打开的,而二级缓存需要手动开启。 接下来,我们探索一下MyBatis的缓存。 首选在官方文档中,我们可以找到MyBatis的相关配置: 全局配置: cacheEnabled … 继续阅读 MyBatis 的秘密(六)缓存
MyBatis 的秘密(五)整体流程图
执行流程图 通过前面的分析,我们梳理了MyBatis从调用方法到返回结果的整个流程,这里我们简单的做一个总结: 先上图,按道理来说时序图应该是最合适的,但是我觉得上面的文字过多。接下来结合上面的图详细说说MyBatis从启动到返回结果的流程 … 继续阅读 MyBatis 的秘密(五)整体流程图
MyBatis 的秘密(四)ResultSetHandler
ResultHandler 前面说过,StatmentHandler最后在处理查询结果的时候,会调用ResultSetHandler处理结果,在看完ResultSetHandler之后,本来想分析一下它的代码,但是存在两个问题: 由于涉及到 … 继续阅读 MyBatis 的秘密(四)ResultSetHandler