久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    spring 事務不起效

     花千骨DC 2017-04-24

    springmvc 事務注冊有很多種方法,在此我只mark 用注解方式添加transaction不生效的解決辦法。

    springmvc 注解方法添加事務步驟:

    1.在 spring的 root-context.xml (WEB-INF/)文件中添加事物管理:

    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="mysqlDataSource">
        </bean>

    或者

    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
            <property name="dataSource" ref="mysqlDataSource"/>
        </bean>

    2.添加注解驅動

    <tx:annotation-driven transaction-manager="txManager"/>

    3.在需要添加事物管理的java類上添加@Transactional

    復制代碼
    @Service
    public class HomeServiceImpl implements HomeService {
        @Autowired
        private HomeDao homeDao;
        
        public static final Logger LOGGER = LoggerFactory.getLogger(HomeServiceImpl.class);
        /**
         * note:need add throw RuntimeException
         */
        @Transactional
        @Override
        public int updateAgeNonException() throws Exception {
            try {
                Map<String,Integer> map = new HashMap<String,Integer>();
                map.put("age", 10);
                homeDao.updateAge(map);
                map.put("age", 30);
                homeDao.updateAge(map);
            } catch (Exception e) {
                LOGGER.error("debug ****", e);
                throw new RuntimeException();
            }
            return 0;
        }
        @Override
        public int updateAgeException() throws Exception {
            try {
                Map<String,Integer> map = new HashMap<String,Integer>();
                map.put("age", 10);
                homeDao.updateAge(map);
                //exception
                System.out.println(2/0);
                map.put("age", 30);
                homeDao.updateAge(map);
            } catch (Exception e) {
                
                LOGGER.error("debug ****", e);
                
                throw new RuntimeException();
            }
            return 0;
        }
        public List<String> queryData() {
            return homeDao.queryData();
        }
    }
    復制代碼

    事物添加以上3步就ok了。

    啟動server運行一下,看事物是否生效。一般情況下是不會生效的。

    原因在于,service方法被注入了2次。解決辦法:

    1.在root-context.xml 中添加包掃描,掃描所有需要注入的包

    <context:component-scan base-package="com.ck.fm.*"></context:component-scan> 

     

    2.在servlet-context.xml配置文件中,包掃描的時候排除掃描service

    <context:component-scan base-package="com.ck.fm.*" >
            <!-- prevented Service injected twice -->
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" /> 
        </context:component-scan>

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 欧美精品一区二区在线观看播放| 亚洲性线免费观看视频成熟 | 日本一区不卡高清更新二区 | 色猫咪av在线网址| 暖暖日本手机免费观看中文 | 国产波霸爆乳一区二区| 丰满爆乳一区二区三区| 日韩在线视频观看免费网站| 成午夜精品一区二区三区| 亚洲爆乳WWW无码专区| 色综合AV综合无码综合网站 | 亚洲AV无码专区在线电影天堂 | 中文字幕在线观看| 久在线精品视频线观看| 无码乱码AV天堂一区二区| 日本成熟少妇激情视频免费看| 一本色道久久东京热| 亚洲最大成人网色| 日韩人妻精品中文字幕| 亚洲精品国产精品乱码视色| 久女女热精品视频在线观看| 国产精品情侣呻吟对白视频| 国产精品丝袜亚洲熟女| 精品国产免费一区二区三区香蕉| 老少配老妇老熟女中文普通话| 麻豆精品一区二区综合av| 丰满人妻AV无码一区二区三区| 亚洲欧洲日韩精品在线| 国产成人手机高清在线观看网站| 成人无码潮喷在线观看| 四虎国产精品永久入口| 18禁美女裸体爆乳无遮挡| 欧美熟妇乱子伦XX视频| √天堂中文www官网在线| 久久夜色撩人精品国产小说| 午夜不卡欧美AAAAAA在线观看 | 亚洲av成人在线一区| 最新无码国产在线视频人与| 无码人妻丝袜在线视频红杏| 国产在线播放专区av| 国产又粗又猛又黄又爽无遮挡 |