经过这样配置以后只要在bo包中新建拥有Transaction这样关键字的类,同时在applicationContext.xml中添加一个bean的配置就拥有了事务的特性,具体的测试不变。如果事务类放在不同的包下只要再添加一个切入点(pointcut="execution…")的配置即可,实现简单方便。
5 结语
针对目前一个经典的Spring框架下事务处理采用了两种不同的实现方式。实现同样基于Spring下的事务功能:一个采用传统的XML配置方式来实现;一个采用Annotation来实现,实现的复杂度和耦合程度有较大的区别。如果还要新添加拥有事务功能的类时,采用XML配置的方式实现,除了要实现特定的接口外,还需要在XML配置文件中添加一个对应的业务bean,并且需添加一个TransactionProxyFactoryBean的配置,还要注意几个bean之间配置参照性,实现比较繁琐,容易出错,耦合性较高。反之,实现同样的功能,使用Annotation的只用bo包中添加拥有Transaction关键字的类,配置文件声明一个bean就可以了,实现方便易懂,更重要的是实现了代码间松散耦合,简化了开发,代码具有较好的可拆装性,使用Annotation在Spring下实现事务具有良好的可扩展性。
参考文献
[1] 徐云彪.数据库原理与技术[M].杭州:浙江大学出版社,2006.
[2] Proxy Factory Bean Example. http://www.java2s.com/Code/Java/Spring/
Spring-Aspect.htm
[3] 林信良.Spring技术手册.[M].北京:电子工业出版社,2006.
[4] 孙卫琴.精通Hibernate:Java对象持久化技术详解[M].北京;电子工业出版社,2005.
[5] 曲海成,刘万军.基于Struts+Spring+Hibernate框架的软件复用技术[J].计算机与现代化,2008,(3).
[6] 陈盛雄;,罗艳霞. 反向控制原理和面向切面编程在Spring中的应用[J].计算机与信息技术2006,(12).
[7] 罗时飞.精通Sp ring[M].北京:电子工业出版社,2005.
[8] Using AOP in the Enterprise. http://www.springframework.org/.
|