春のフレームワーク統合MyBatisの - ビジネスのための宣言的トランザクション制御層を追加する - 使用注釈への道

そして、まだ小さい場合は、ケースの上に、我々はトランザクションがapplicationContext.xmlをコア・コンフィギュレーション・ファイルで設定され、管理、実際には、我々は、注釈のスタイルを使用することができ、簡素化することができました。

applicationContext.xmlを

 

 UserServiceImpl.java

1  パッケージcn.smbms.service。
2  
3  インポートjava.util.Listに。
4  
5  インポートorg.springframework.beans.factory.annotation.Autowired。
6  インポートorg.springframework.beans.factory.annotation.Qualifier。
7  インポートorg.springframework.stereotype.Service。
8  インポートorg.springframework.transaction.annotation.Propagation。
9  インポートorg.springframework.transaction.annotation.Transactional。
10  
11  インポートcn.smbms.dao.user.UserMapper。
12  インポートcn.smbms.pojo.User。
13@Transactional(伝播= Propagation.REQUIRED)
 14 @Service( "UserServiceの" 15の パブリック クラス UserServiceImpl 実装UserServiceの{
 16  
17      @Autowired
 18      @Qualifier( "userMapper" 19      プライベートUserMapper userMapper。
20  
21      公共UserMapper getUserMapper(){
 22          リターンuserMapper。
23      }
 24  
25      公共 ボイドsetUserMapper(UserMapper userMapper){
 26          この .userMapper =userMapper;
27      }
 28  
29      @Override
 30      公衆リスト<ユーザ> findUsersは(ユーザユーザ){
 31          // TODO自動生成方法スタブ
32          戻り userMapper.getUserList(ユーザ)。// 调用的DAO层的方法
33      }
 34  
35      @Override
 36      公共 ブールaddNewUser(ユーザユーザ){
 37          ブーリアンフラグ= 38          であれば(userMapper.add(ユーザ)== 1 ){
 39              リターンフラグ= 40          }
 41          リターンフラグ。
42      }
 43  
44      @Override
 45      公共 ボイド addNewUser(一覧<ユーザー> ユーザーリスト){
 46          のためにINT iが= 0; I <userList.size(); I ++ ){
 47              addNewUser(userList.get(I))。
48              // 模拟一个异常
49              スロー  新しいのRuntimeException( "模拟异常!!!" );
50          }
 51          
52      }
 53  
54 }

テストクラスを実行して、我々は同じ所望の結果を達成することができ、データベースがデータに挿入されていないことがわかりました。

例外がコメントした場合は、同じデータを挿入することができます

 

 

おすすめ

転載: www.cnblogs.com/dongyaotou/p/12153490.html