そして、まだ小さい場合は、ケースの上に、我々はトランザクションが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 }
テストクラスを実行して、我々は同じ所望の結果を達成することができ、データベースがデータに挿入されていないことがわかりました。
例外がコメントした場合は、同じデータを挿入することができます