web开发中,因应用所属行业领域不同,对系统架构的选择也不同,系统架构决定了整个系统性能


和其他各种技术指标。
   

    J2EE开发中,通常选用以下三种架构:


1,SSH



即spring+struts+hibernate


hibernate是一个ORM框架,应用在DAO层。


struts是一个MVC框架,用在web层。


spring是一个容器型框架,主要应用其IOC(依赖注入)和AOP(面向切面)特性,进行整个系统的


事务管理和在代码层面上对各种业务bean进行装配。




   架构特性:



DAO层由hibernate负责,是使用面向对象的编程思想进行数据访问层的操作,后台开发人员不


必关心数据库类型,不必写SQL语句,hibernate底层会自动生成SQL,只需通过HBM对象关系映射配置文


件,配置每个MODEL bean和库表的对应关系。


系统移植,更换数据库比较容易。


   缺陷:



效率相对不高,HQL语句限制比较对,例如多表连接查询用HQL就显得比较麻烦,当关联条件表


多的时候,配置很麻烦。


多表关联查询,条件字段比较多的情况,最好不要用使用HQL语句。


   适应场合:



比较适合数据访问量不高的对内应用系统,对系统性能效率要求不高的场合。




2,SSI



即spring+struts+ibatis


和SSH相比,这里使用ibatis代替hibernate。


ibatis也是一个轻量级ORM框架,ibatis使用sqlMap配置文件来配置model bean对应库表的操


作。通过在sqlMap直接书写SQL语句,可以减少很多不必要的SQL操作,通过对SQL进行精炼、优化,很


大限度的提高数据库操作效率。


   架构特性:


数据库操作效率快,解决了SSH产生的多表连接的麻烦。


   缺陷:



要求后台开发人员比较熟悉SQL语法,对SQL优化有一定的掌握。


系统移植,更换数据库相对SSH架构要麻烦些。


   适应场合:



对数据库操作效率有比较高的要求。




3,springMVC+ibatis



相比前两种,去除了struts框架,使用spring的MVC组件代替。


这种架构,目前很流行,尤其在互联网、大数据行业应用广泛。


主要由于对整个应用系统性能、安全性等方面的作用,使得其适合。


   架构特性:


效率高、安全、易用,有很强大的注解特性。


   适应场合:



对严格要求系统性能、数据访问量比较大的互联网应用及同样要求的其他行业应用。