spring ejb3 jta 事务泛谈

其实我很早就用过spring,当时抱着in action看了好几遍,但是一直没有怎么用。时不时忘记了又跑回去看,我看别人蛮喜欢用spring,但是我就是不喜欢用,主要是我不喜欢xml配置。连hibenate的配置我都不喜欢。

今天回忆一下spring,拿官方指定的文档来说吧.

spring:

http://www.theserverside.com/news/1364527/Introduction-to-the-Spring-Framework [作者是spring的作者]

spring的目的主要是简化j2ee的运用,使用一种pojo的无侵入的编程风格。它整合各种开源框架,是种方便的胶水,也是使用灵活的骨架。

它有以下几个主要方面的功能:

反转控制IOC:

面向接口的编程,松耦合。--不过这也带来了讨厌的配置

jdbc抽象:

jdbc模板

ORM框架整合:

hibernate,ibatis……

面向方面的编程AOP:

由动态代理和cglib实现,提供事务抽象。这个吵得蛮厉害,而我又用的很少,所以不多说。

spring MVC web:

参见http://blog.ureshika.com/archives/435.html

实现和使用EJB:

这似乎对ejb2来说的,

使用proxy来包装无状态bean和客户端,得到pojo的便利。加上springbean的便利,可以减少EJB使用的复杂度。

测试:

有spring特点的测试(回滚……)。

事务:

我再谈谈事务,spring里面提供对事务的抽象,其底层可以使用JTA, JDBC, Hibernate, JPA, 和 JDO。这里要搞清楚事务这个概念,在目前java里面,事务还是针对关系数据库据持久化来说的,大部分nosql是不支持事务的,也和jdbc没关系。spring的事物抽象最终是反映到关系数据库上来。

ejb3:

ejb3默认使用容器管理事务CMT,策略为REQUIRED。即每个远程方法必须一个事务。遇到异常会回滚事务,但是@ApplicationException(rollback=false)时则不会回滚。


Total views.

© 2013 - 2024. All rights reserved.

Powered by Hydejack v6.6.1