1. In declarative things, the method of one class ServiceA test1 () calls another class ServiceB method Test2 () if ServiceB test2 () transaction configuration is required in the XML file and added on this method
@Transactional (propagation = propagation.not_supported)
Then the Serviceb.test2 () is dominated by XML, and not_supported does not work. If the method does not configure required on the XML, it will work
If you call another method in the same class Test2 add propagation.not_supported, the propagation_not_supported of Test2 () fails
2. If a method in a class test1 () calls another method of this class Test2 (), is required, if the test2 throws an exception, if the test1 does not catch, it will be rolled back, or the Test1 method catch exception, two methods will commit
3. If a method in a class test1 () calls the method of another class Test2 (), is required, if the test2 throws an exception, if the test1 does not catch, it will be rolled back, or the Test1 method catch exception, then still rollback
Ext.: http://8917152.blog.51cto.com/8907152/1544254
Propagation characteristics of Spring transactions