Posted on 2007-09-11 17:07
匪客 阅读(1984)
评论(1) 编辑 收藏 所属分类:
开发技术
此文档讲述的内容适合于对
Spring MVC
和数据持久层
ORM
概念有一定基础的开发者,着重于讲述基于
Spring
框架基础之上进行
Java
开发的其中一种技术解决方案,而不是讲述相关技术的原理,想要了解技术原理内容请参考相关文档资料。
现在,网络上流传的Spring+Struts+Hibernate用得非常火,几乎成为很多对技术痴迷的人的技术架构标准,可是在我看来,也许是因为项目都不算大,人力也不够多,这个技术架构太复杂了。从Spring本身来讲,从MVC到数据操作,都可以不需要其他附加组件即可实现,并且结构清晰,使用简单,功能还更加强大,本文讲述的重点就是单独使用Spring来建立一个简易的开发框架。
首先说,为什么选择Spring呢?大概在2003年的时候,Struts已经开始流行了,但是在学习Struts的时候感觉这个技术框架比原始的JSP+JavaBean的方式复杂了很多,后来2004年做新项目时在论坛上看到推荐Spring,下载一试,上手非常的容易,结构也很清晰,支持的功能也非常多,所以决定用它了(其实那时候对于依赖注入和AOP代理还不甚了解,也很少用到接口)。
在2001-2003年的时候都是自己封装了JavaBean做为公共模块来访问数据库的,后来ORM兴起了,先是看了Hibernate的,3.0版还没用出,还不支持存储过程,因为那时候也做Delphi相关开发,用惯了SQL语句,始终觉得HQL这样的东东增加了开发的复杂度和不可控制性,原生的复杂SQL语句无法使用,不喜欢。后来看到了iBATIS,经过试用,正是我所需要的,SQL语句配置简单,基本不会破坏SQL语句的结构,这样将SQL语句Copy到外部数据库工具中进行调试也非常的方便,加上SQL语句可以使用很多的特定数据库的函数,执行效率和简洁性也非常好,修改了SQL又不需要重新编译程序。
有网友说Hibernate支持多个数据库移值啊,我认为这个就不仅仅是SQL语句的问题了,还有很多其他方面的因素,大多数项目都可以不用考虑。又有网友说Hibernate对于数据库结构修改的影响比较小,这种情况影响的也不仅仅是几句代码的问题,涉及到界面表现、业务流程等很多重要方面,相对说来修改代码倒是小Case了。
说完了上面的
ORM
组件,再说说
JDBC
,
Spring
的
JdbcTemplate
将我们常用的
JDBC
流程封装起来,使用非常简单,一般执行的
SQL
就是一句话,构造
SQL
随着业务的复杂而复杂,并且也支持
PrepareStatement
的执行模式避免
SQL
注入漏洞发生,同样具备完整的数据操作功能如查询、更新、存储过程、异常捕捉等等,经过几年的使用比较,我认为轻型的项目使用
JdbcTemplate
是非常不错的选择。
由于能力所限,其中细节如有欠缺之处,请多多批评指正。
2.
参考资料
²
Spring
官方网站:
http://www.springframework.org/
;
²
Spring 2.0
中文参考手册:
http://spring.jactiongroup.net/
;
²
Apache Jakarta
官方网站:
http://jakarta.apache.org/
;
²
JSTL
官方网站:
http://java.sun.com/products/jsp/jstl/
;
²
Intellij IDEA
官方网站:
http://www.jetbrains.com/
;