重读spring2.5手册笔记

来源:互联网 发布:java判断是不是小数 编辑:程序博客网 时间:2024/05/16 03:12

1.在spring配置文件中启用对@AspectJ切面配置的支持须加入: <aop:aspectj-autoproxy />

 

2.声明式事务中,任何RuntimeException将触发事务回滚,checked Exception将不触发事务回滚

(没有指定的情况下的默认值); 通过设置<tx:method />的 rollback-for和no-rollback-for属性可以自定义,

而且中间可以罗列多个

 

3.加载时织入切面加 <context:load-time-weaver />

相应的jar:aspectjweaver.jar,spring.jar,aspectjrt.jar

有关的xml文件:META-INF/aop.xml

 

4.XML Schema-based configuration

不同的需求需要引入不同的xml命名空间定义,附录A

 

5.事务策略:

(a).client orchestration事务策略

(b)API Layar事务策略:

      优点:直观、简单、易于实现,并且健壮,能够应用于大多数场合

      缺点:在调用栈的最高层启动事务会降低效率,长时间占用事务和长时间锁定会消耗过多的资源

 

(c)High Concurrency策略

     在API Layer策略的基础上,实现了最高水平的数据完整性和一致性,很好的平衡它与吞吐量、数据库并发之间的矛盾。

    (使用 InnoDB 引擎的 Oracle 和 MySQL)不会保留读取锁,锁越多,对并发和吞吐量影响越大)

    实现:(1)宏观上,在客户端 、API层、DAO层混合引入事务;(2)在微观上,使用“先读取技巧”和“低级技巧”,尽可能的缩小“update"和"insert"所涉及的范围。

 

(d)High-Speed Processing事务策略

    本质就是放大一部分风险,综合考虑可用的框架,结合存储过程、本地事务,最大限度的发挥性能优势。

 

 

事务策略应用的黄金法则:

a.启动事务的方法被指定为事务所有者

b.只有事务所有者可以回滚事务