ローカル・トランザクション・シリーズの5:Transactional注釈の使用
1580 ワード
AOPの構成はやや複雑であり、[color=red]@Transactional[/color]注釈により、同様に実現できる.
1.トランザクションが必要なクラスまたはメソッドに[color=red]@Transactional[/color]:
クラスに注釈を付けると、クラスのすべてのpublicメソッドにトランザクションが適用されます.
メソッドに注釈を付けると、トランザクションが適用されます.
インタフェースに注釈を付けるリスクがあり、CGLIB(クラスエージェント)を使用するとトランザクションは有効になりません.
2.注記トランザクションスイッチをオンにする:[color=red][color]
Fruit Shop実装:
[email protected]ファイル:
テストクラスは以前と類似しています.
添付:
Springの最下層もAOPによって@Transactional注釈トランザクションのサポートを実現しています.
[img]http://dl2.iteye.com/upload/attachment/0099/7732/87027e38-ba94-39a9-af3e-1aae4363ca2d.png[/img]
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]