ローカル・トランザクション・シリーズの5:Transactional注釈の使用

1580 ワード

AOPの構成はやや複雑であり、[color=red]@Transactional[/color]注釈により、同様に実現できる.
1.トランザクションが必要なクラスまたはメソッドに[color=red]@Transactional[/color]:
クラスに注釈を付けると、クラスのすべてのpublicメソッドにトランザクションが適用されます.
メソッドに注釈を付けると、トランザクションが適用されます.
インタフェースに注釈を付けるリスクがあり、CGLIB(クラスエージェント)を使用するとトランザクションは有効になりません.
2.注記トランザクションスイッチをオンにする:[color=red][color]
Fruit Shop実装:

public class AnnotationTxFruitShop extends JdbcDaoSupport implements FruitShop {

@Transactional // 、 、 、 、
@Override
public boolean purchase(int fruitId, String userName, int count) {
// AopTxFruitShop
}
}

[email protected]ファイル:









テストクラスは以前と類似しています.

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/[email protected]" })
public class AnnotationTxFruitShopTest {

@Resource(name = "annotationTxFruitShop")
FruitShop annotationTxFruitShop;

@Test
public void test() {
...
}
}

添付:
Springの最下層もAOPによって@Transactional注釈トランザクションのサポートを実現しています.
[img]http://dl2.iteye.com/upload/attachment/0099/7732/87027e38-ba94-39a9-af3e-1aae4363ca2d.png[/img]