摘要:
SpringBoot核心启动类的SpringApplication。从SpringApplication.run()开始先创建SpringApplication对象,并调用该对象的run方法。 构建SpringApplication对象 初始化SpringApplication的source 初始化 阅读全文
摘要:
淘宝前台系统的优化历程 2009年,系统拆分,静态文件合并,前端页面异步化和JSON化。 2010年,去DB依赖,引入缓存,提升单机QPS,关注用户体验。 2011年,优化进入深水区Velocity,BigPipe。 2012年,静态化改造。 2013年,统一Cache,CDN化,网络协议。 高访问 阅读全文
摘要:
创建一个ServletContextServer类,用来初始化web应用程序的Context,并且指定Servlet和Servlet匹配的url。这里指定了两个Servlet,分别是HelloServlet和GoodbyeServlet,并分别对应/hello/*和/goodbye/*。 也可以创建 阅读全文
摘要:
何为同步?JVM规范规定JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同步是使用monitorenter和monitorexit指令实现,而方法同步是使用另外一种方式实现的,细节在JVM规范里并没有详细说明,但是方法的同步同样可以使用这两个指令来实现 阅读全文
摘要:
ACID特性 原子性(Atomicity)事务必须是一个不可分割的整体,就像我们在化学课里学到的原子,原子是构成物质的最小单位。 一致性(Consistency)执行完数据库操作后,数据不会被破坏。打个比方,如果从 A 账户转账到 B 账户,不可能因为 A 账户扣了钱,而 B 账户没有加钱吧。 隔离 阅读全文
摘要:
如果用最简洁的话来总结 iBATIS 主要完成那些功能时,我想下面几个代码足够概括。 iBATIS 就是将上面这几行代码分解包装,但是最终执行的仍然是这几行代码。前两行是对数据库的数据源的管理包括事务管理,3、4 两行 iBATIS 通过配置文件来管理 SQL 以及输入参数的映射,6、7、8 行是 阅读全文
摘要:
Tomcat 的心脏是两个组件:Connector 和 Container,Connector 组件是可以被替换,这样可以提供给服务器设计者更多的选择,因为这个组件是如此重要,不仅跟服务器的设计的本身,而且和不同的应用场景也十分相关,所以一个 Container 可以选择对应多个 Connector 阅读全文
摘要:
Session 与 Cookie 的作用都是为了保持访问用户与后端服务器的交互状态。它们本身只是HTTP中的一个配置项,在servlet规范中也只对应一个类而已。 理解 Cookie 通俗地说就是当一个用户通过 HTTP 协议访问一个服务器的时候,这个服务器会将一些 Key/Value 键值对返回给 阅读全文
摘要:
Java TreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评判可以通过其本身的自然顺序(natural ordering),也可以通过构造时传入的比较器(Comparator)。 TreeMap底层通过红黑树(Red-Black tre 阅读全文
摘要:
Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力。虽然它们是彼此 阅读全文