Hibernate与Struts2,Spring

Struts2 框架

Struts是Apache组织的一个开源项目,是一种基于MVC设计模式的java web开发框架,利用它可以简化Java Web项目的开发,提高系统的灵活性和可扩展性.
Struts 2框架的特点
扩展性强
支持使用拦截器
容易测试
默认配置
支持使用注解
支持Ajax
表现层输出形式丰富
支持使用OGNL(Object Graph Notation Language)
便于与Spring集成
开发Struts2应用所必须的类库
struts2-core.jar  struts2的核心类库
xwork.jar  Struts2所依赖的XWork类库
freemarker.jar struts2所依赖的FreeMarker类库,FreeMarker是java中的一种模板技术
ognl.jar 支持对象图导航语言(OGNL)的类库,OGNL是Struts2所使用的表达式语言
commons-logging.jar 通用的日志类库,Struts2用它为Log4j提供日志记录
commons-fileupload.jar   Struts2用来完成文件上传的类库
commons-io.jar     使用commons-fileupload类库的依赖类库

在具体的看Struts的api的使用,这样就不详细说了

 

Hibernate与Spring Framework

Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。Spring的创始人——Rod Johnson

 

Spring FrameWork的子模块

Hibernate与Struts2,Spring


Ioc容器

容器的概念
包含其他的其他对象的容器
IoC设计模式
控制反转

 Hibernate与Struts2,Spring

SpringAOP
oop的不足
Aop应运而生

AOP专有名词
接入点 Joinpoint
切入点  Pointcut
通知   Advice
切面  Aspect
目标对象  Target Object
AOP代理 AOP Proxy
织入Weaving

Spring AOP中通用的通知类型
前置通知(MethodBeforAdvice)
返回后通知(AfterReturningAdvice)
异常通知(ThrowsAdvice)
环绕通知(MethodInterptor)

使用AspectJ 5的注解实现Spring AOP

@Aspect
public class LogAspect{
 @Pointcut("execution(*com.rbh.guestbook.web.GuestbookAction.query(..))")
public void logMethod(){
}

 @Aspect 表示一个切面类
@pointcut切入点

AspectJ的切入点表达式语法

execution(可见性?返回类型 声明类型?方法名称(参数类型)异常类型?)

语法         是否可选   说明
可见性         可选       可见性遵循java语法,"public"将匹配所有的public方法,可以使用"*"通配符匹配所有的可见性
返回类型       必选   用来匹配方法的返回类型,如果void,string,double等。用"*"通配符可以匹配所有的返回类型
声明类型       可选   用于匹配java包名,如com.rbh.guestbook.web等,可用"*"通配符
方法名称       必选   匹配方法名称,可以使用"*"通配符,声明类型和方法名称组成切入点的全路径
参数类型       必选       指定方法的参数类型及个数,".."通配符匹配任何参数类型
异常类型       可选    匹配方法抛出异常的类型

Spring 对Hibernate的支持

HIbernateTemplate

 load()  根据标识符属性值获取对应的持久化对象,找不到记录,抛出违例
delete() 删除已经存在的持久化对象
find()  执行HQL语句,获取持久化对象的集合
get()  根据标识符属性值获取对应的持久化对象,如果数据不存在,返回null
persist() 保存持久化对象到数据库中
refresh() 刷新持久化对象
save()  保存持久化对象所对应的数据岛数据库中
saveOrUpdate() 保存或者更新持久化对象所对应的表中的数据
update() 更新持久化对象所对应的表中的数据

 

简化SessionFactory对象的获取
使用Spring提供HibernateTemplate和,
HibernateDaoSupport类

使用Spring的声明性事务管理

Spring对事务的支持
Spring编程事务管理
Spring声明事务管理

 

Spring中事务隔离级别
ISOLATION_DEFAULT                     使用后端数据库默认的隔离级别
ISOLATION_READ_UNCOMMITTED 一个事务可以读取另一个事务已更新但尚未提交的数据,但在另一个事务提交前,不允许其他事务再写入,所有这种隔离级别可能出现脏读,但是不可能出现更新丢失
ISOLATION_READ_COMMITED        某个事务仅可读取(不可修改或者删除)另一个事务已提交的数据,不可以读取尚未提交的数据,所有这种隔离级别不可能出现脏读,但可能出现不可重复读,和幻读
ISOLATION_REPEATABLE_READ     一个事务已读取的数据,不允许其他事务进行数据写入,不可能出现不可重复读,但是可能出现幻读
ISOLATION_SERIALIZABLE            最严格的事务隔离级别,它要求所有事务进行序列化执行,事务只要一个接着一个的执行,不能迸发执行

 

 Spring的传播行为

 

 Hibernate与Struts2,Spring

 

 

你可能感兴趣的:(spring,AOP,编程,Hibernate,框架)