java框架有不少,也是发展过程的一个反应。以下是某同行 对java框架发展历程的总结,相对比较清晰:
java web的进化历程大致如下:
开始:servlet
因为标签解耦:jsp
因为页面数据解耦:jsp+javabean
因为控制层解耦:jsp+servlet+javabean
因为控制层共用:jsp+struts
因为解耦数据库:jsp+struts+hibernate
因为解耦控制层和数据层:jsp+struts+spring+hibernate
因为界面和控制层解耦:jsp+struts2+spring+hibernate
因为struts2安全问题:jsp+springmvc+spring+hibernate
因为mybatis更能适应业务复杂性:jsp+springmvc+spring+mybatis
........
整个过程前期主要推动因素解耦,后期两次是因为安全和业务复杂性要求。
hibernate其实也可以用于复杂业务复杂sql,性能也可以比较高,但是这样的话对技能要求就比较高。其实不管是hibernate还是mybatis,都可以直接获取数据库的connection,对于数据很大性能要求又高的部分,直接用jdbc来操作,也不用封装为pojo。
开始:servlet
因为标签解耦:jsp
因为页面数据解耦:jsp+javabean
因为控制层解耦:jsp+servlet+javabean
因为控制层共用:jsp+struts
因为解耦数据库:jsp+struts+hibernate
因为解耦控制层和数据层:jsp+struts+spring+hibernate
因为界面和控制层解耦:jsp+struts2+spring+hibernate
因为struts2安全问题:jsp+springmvc+spring+hibernate
因为mybatis更能适应业务复杂性:jsp+springmvc+spring+mybatis
........
整个过程前期主要推动因素解耦,后期两次是因为安全和业务复杂性要求。
hibernate其实也可以用于复杂业务复杂sql,性能也可以比较高,但是这样的话对技能要求就比较高。其实不管是hibernate还是mybatis,都可以直接获取数据库的connection,对于数据很大性能要求又高的部分,直接用jdbc来操作,也不用封装为pojo。