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组件代替。
这种架构,目前很流行,尤其在互联网、大数据行业应用广泛。
主要由于对整个应用系统性能、安全性等方面的作用,使得其适合。
架构特性:
效率高、安全、易用,有很强大的注解特性。
适应场合:
对严格要求系统性能、数据访问量比较大的互联网应用及同样要求的其他行业应用。