创建的。
Spring使用基本的JaVaBe觚来完成以前只可能由EJB完成的事情。
然 房地产业培训信息管理系统而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何JaVa应用都可以从S研ng中受益。
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架【8】。
(1)轻量——从大小与开销两方面而言Spfing都是轻量的。
完整的Sprif喀框架可以在一个大小只有lMB多的JAR文件旱发布。
并且Spring所需的处理开销也是微不足道的。
此外,SpriIlg是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
(2)控制反转——S砸ng通过一种称作控制反转(IoC)的技术促进了松耦合。
当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
(3)面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务管理)进行内聚性的开发。
应用对象只实现它们应该做的——完成业务逻辑——仅此而已。
它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
(4)容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个be锄如何被创建——基于一个可配置原型(protob,pe),你的be趾可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。
然而,S砸ng不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
所有Spring的这些特征使开发者能够编写更干净、更易管理、并且更易于测试的代码,它们也为S研ng中的各种模块提供了基础支持。
2.3.5 i BATIS技术 相对Hibem a_te和Apache OJB等“一站式”OI己M解决方案而言,ibatis是一种“半自动化”的OlW实现。
所谓“半自动”,可能理解上有点生涩。
纵观目前主流的ORM,无论Hibemate还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO到数据库表的全套映射机制。
程序员往往只需定义好了POJO到数据库表的映射关系,即可通过Hi鼬e或者oJB提供的方法完成持久层操作。
程序员甚至不需要对sQL的 一8一 大连理.1:人学专业学位硕十:学位论文熟练掌握,Hib唧ale/oJB会根据制定的存储逻辑,自动生成对应的SQL并调用JDBC接口加以执行。
大多数情况下(特别是对新项目,新系统的开发而言),这样的机制无往不利,大有一统天下的势头。
但是,在一些特定的环境下,这种一站式的解决方案却未必灵光。
常常遇到以下情况: (1)系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。
(2) 开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(就笔者工作所面向的金融行业而言,工商银行、中国银行、交通银行,都在开发规范中严格指定)。
(3)系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。
面对这样的需求,再次举起Hibemate大刀,却发现刀锋不再锐利,甚至无法使用,直接使用JDBC进行数据库操作实际上也是不错的选择,只是拖沓的数据库访问代码,乏味的字段读取操作令人厌烦。
“半自动化”的ibatis,却刚好解决了这个问题。
这里的“半自动化”,是相对Hibemate等提供了全面的数据库封装机制的“全自动化”01w实现而言,“全自动”ORM实现了POJO.