Spring 和 Hibernate
背景
JavaEE,以前称之为 Java2E,用来开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。
EJB(Enterprise JavaBeans)为其主要技术之一,可以让开发者方便地创建、部署和管理跨平台的基于组件的企业应用。
JDBC(Java Database Connectivity)也是其主要技术之一,由一组用 Java语言编写的类和接口组成,提供连接各种关系数据库的统一接口,可以为多种关系数据库提供统一访问。
Spring 框架是什么?
Spring是一个开源的轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,使用基本的JavaBean来完成以前只可能由EJB完成的事情,是为了解决企业应用开发的复杂性而创建的。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),用户只需要着重于应用逻辑的开发。
轻量 — 完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布;
控制反转 - 当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象;
面向切面 - Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发;
容器 — Spring包含并管理应用对象的配置和生命周期,类似于EJB容器,但更为轻量和易用;
框架 — Spring可以将简单的组件配置、组合成为复杂的应用。
Hibernate 框架是什么?
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
它们在一个 JavaEE 程序(SSH 框架)中扮演的角色
典型的JavaEE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。
中间层采用的一般是Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种:
- Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,SSH系统的MVC框架采用Struts;
- Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑;
- DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作;
- PO(Persistent Object),持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架;
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。