(一)Struts2基础
Struts2 中大量使用拦截器来处理用户请求,从而允许用户的业务逻辑控制器与servlet api分离。
-
Struts2框架结构:
用户请求提交给strus2的核心控制器FilterDispatcher,FilterDispatcher根据请求调用相应的Aciton的execute()方法,并根据处理结果显示相应的jsp页面。其中,针对一些通用的功能,Struts2框架内置了许多拦截器,这些拦截器组成一个拦截器链,拦截器链会自动对请求应用这些通用型的功能。
Struts2的控制器有两部分组成FilerDispatcher和业务控制器Action。 -
Action类优势:
Action类完全是一个POJO,具有良好的代码重用性;
Action类无须与Servlet API耦合 -
Struts2配置文件:
Struts的配置文件 Struts2创建系统的Action代理时,需要使用Struts2的配置文件,在此文件中需要对用户定义的Action进行相关信息的配置。
Struts2的配置文件有两种: 配置Action的Struts.xml文件 配置Struts2全局属性的struts.properties文件
(二)Hibernate框架
Hibernate框架是轻量级java EE 应用中持久层的解决方案,Hibernate不仅管理对象数据到数据库的映射,还提供面向对象的数据查询和获取方法,与单纯使用JDBC相比,大幅缩短了进行数据持久化处理的开发时间。
- hibernateORM框架优势:
开源并且免费,方便需要时研究,改写源代码,进行功能制定简单,避免引入过多复杂问题,进行轻量级封装,容易调试;具有可扩展性,API开放,根据需要可进行扩展 稳定的性能,发展有保障
POJO跟普通的JavaBean一样Hibernate直接采用POJO作为PO,不需要持久化类继承人和父类 为使POJO具备可持久化操作的能力,Hibernate采用XML作为映射文件对POJO类和数据库中的表进行映射。
-
设计原理:
object-relation mapping
创建一个实体类,与之对应一个table
好处是不用在写sql,直接操作bean(类)
bean.save.find\delete\update -
与Mybatis的区别(个人体会):
Bean <–> table
dao
insert() —> SQL
delete() —> SQL
最大的不同–mybatis SQL更灵活
mybatis可以通过XML或注解方式灵活配置要运行的sql语句 -
Hibernate API介绍
1.Configuration类 用于配置、启动Hibernate,创建SessionFactory实例对象
2.SessionFactory接口 用于初始化Hibernate,创建Session实例,充当数据源代理
3.Session接口 用于保存、更新、删除、加载和查询持久化对象,充当持久化管理器
4.Transaction接口 用于封装底层的事务,充当事务管理器
5.Query接口 用于执行HQL数据库查询,充当Hibernate查询器
6.Criteria接口 用于创建并执行面向对象方式的查询,充当Hibernate查询器
7.Session Hibernate持久化操作的关键对象,是应用程序与数据库之间交互操作的第一个单线程对象,所有的持久化对象必须在Session管理下才可以进行持久化操作
8.Transaction 提供持久化中的原子操作,具有数据库事务的概念
9.Persistent Object 持久化对象,与Session关联,处于持久化状态
10.Transient Object 瞬态对象,没有与Session关联,尚未持久化的对象
11.ConnectionProvider 数据库连接提供者,用于生成与数据库建立连接的JDBC对象
12.TransactionFactory 是生成Transaction对象的工厂,实现了对事务的封装
-
Hibernate应用有3种开发方式
自底向上从数据库表到持久化类。采用手动或者开发工具根据数据库中表的结构生成对应的映射文件和持久化类
自顶向下从持久化类到数据库表。先编写持久化类,然后手动或采用工具编写映射文件,进而生成数据库表结构
从中间出发向上与向下同事发展。先编写映射文件,然后根据映射文件向上生成持久化类,向下生成数据库表结构 -
Hibernate开发步骤
配置Hibernate用用环境,在应用中添加Hibernate所需要的jar包,并创建Hibernate配置文件 创建持久化类及其ORM映射文件 利用Configuration装载配置 利用SessionFactory创建Session 通过Session进行持久化对象的管理 利用Transaction管理事务 利用Query进行HQL查询或利用Criteria实现条件查询
(三)Spring
Spring 概述 Spring 是Java领域中的优秀开源框架,它提供了一个全面的,一站式的JAVA EE解决方案,大大简化了Java企业级开发的过程,提供了强大、稳定的功能,为Java开发企业应用和Web应用带来了福音。
-
Spring功能:
基于依赖注入(控制反转IoC)的核心机制 声明式的面向切面编程(AOP)支持 与多种技术整合 优秀的Web MVC框架
Spring是企业应用开发的“一站式”选择,贯穿表示层、业务层、持久层。而且,Spring并不会取代哪些已有的框架,而是以高度的可制定性与之无缝结合。Spring不做重复性的实现,比如对象持久化和ORM,Spring只是对现有的JDBC、Hibernate,JPA等技术提供支持,将其整合,使之更易使用。 -
Spring优点:
低侵入式设计,代码无污染
独立于各种应用服务器,真正实现,Write Once、Run Anywhere(一次编写,随处运行)的承诺
Ioc容器降低了业务对象替换的复杂性,降低了组件之间的耦合
AOP容器允许将一些通用任务,如安全、事务、日志等进行集中式处理
Spring中的ORM和Dao支持提供了与第三方那个持久层框架的良好整合,并简化了底层的数据库访问
Spring的高度开放性,并不强制开发者完全依赖于Spring,可自由选用Spring框架的部分和全部功能