前言:不先学习常见的设计模式直接看Spring、MyBatis等源码,简直就是一个找虐的过程!不掌握Servlet原理、基本的Tomcat容器技术上来就看Spring MVC源码同样也是一个打击自信心的好地方!学习是一个循序渐进的过程,不能急于求成,但也不能过分钻牛角尖!不能再一个技术上停滞不前,也不能如”蜻蜓点水”一般了了掠过

1. Web发展史 

从Model1到Model2,然后到后来的三层模型,最后到现在的Spring Boot。如果从Model1到Model2说起到我们现在使用的Spring Boot为整个时间轴的话,大致可以分为4个阶段:

(1)使用Model1/Model2/三层模型进行开发;

(2)使用EJB进行分布式应用开发,忍受重量级框架带来的种种麻烦;

(3)使用Spring,仍要忍受很多繁琐的配置;

(4)使用Spring Boot,简化开发配置

  2. 初级阶段

 Model1

  Model1的开发模式是:JSP+JavaBean的模式,它的核心是Jsp页面,在这个页面中,Jsp页面负责整合页面和JavaBean(业务逻辑),而且渲染页面

Model2

  Model2的开发模式是:Jsp+Servlet+JavaBean的模式,它和Model1不同的是,增加了Servlet,将调用页面数据,调用业务逻辑等工作放到了Servlet中处理,从而减轻了Jsp的工作负担!

三层模型,三层则是在此基础上,将JavaBean再一次进行分割:业务逻辑、数据持久化,三层如下:

(1)表示层,JSP/Servlet; 
(2)业务逻辑层:业务规则; 
(3)持久化层:主要包装持久化的逻辑 ;

3  存在的问题

  1、面向接口编程的实例化对象  每次使用对象都得重新实例

每一个方法中都需要进行实例化我们需要用到的接口的实现类,这就会存在大量的实例化对象,并且他们的生命周期可能就是从方法的调用开始到方法的调用结束为止,加大了GC回收的压力!

  2、使用单例模式的一次改进

(1)业务代码与单例模式的模板代码放在一个类里,耦合性较高; 
(2)大量重复的单例模式的模板代码;

使用的单例模式虽然从性能上有所提高,但是却加重了我们的开发成本

3、类似JDBC连接池的概念,我们需要一个容器来集中管理对象的生命周期

参考:spring是怎么诞生的

05-11 22:14