A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2019-6-5 14:04  /  1267 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

基于xml的声明式事务控制:
        xml配置:
                导入约束;
                配置业务层和持久层的bean对象,并注入数据源;
                配置数据源;
                配置事务管理器:
                        tx:advice标签:设置DataSourceTransactionManager的bean对象;
                                id属性:事务管理器的标识
                                class属性:DataSourceTransactionManager的包路径;
                                property标签:注入数据源;
                配置事务通知和属性:
                        tx:advice标签:开始事务通知的配置;
                                id属性:事务通知的标识;
                                transaction-manager属性:事务管理器;
                                tx:method标签:开始配置事务的属性
                                        name属性:service层里需要增强的方法;
                                        propagation属性:指定传播行为(默认值是REQUIRED);
                                        isolation属性:指定隔离级别(默认值是DEFAULT);
                                        read-only属性:指定事务是否只读(默认值是false);
                                        timeout属性:指定超时时间(默认-1);
                                        ollback-for属性:指定异常,除该异常都不回滚(默认都回滚);
                                        no-rollback-for属性:指定异常,除该异常都回滚(默认都回滚);

                配置切入点:
                        aop:pointcut标签:定义切入点
                                id属性:切入点的标识;
                                expression属性:切入点的表达式;
                                aop:advisor标签:关联事务的通知和切入点;
                                        advice-ref属性:事务通知的标识;
                                        pointcut-ref属性:切入点的标识;
        持久层的实现类:
                        继承JdbcDaoSupport;
                        用JdbcDaoSupport的getJdbcTemplate()方法来执行SQL语句;
        注:该方式配置较繁琐,但使用(一次配置终生有效)方便;


基于注解的声明式事务控制:
        xml配置:
                导入约束;
                配置包扫描;
                配置JdbcTemplate的bean对象,并注入数据源信息;
                配置数据源;
                配置事务管理器:
                        tx:advice标签:设置DataSourceTransactionManager的bean对象;
                                id属性:事务管理器的标识
                                class属性:DataSourceTransactionManager的包路径;
                                property标签:注入数据源;
                开启spring对事务注解的支持:
                        tx:annotation-driven标签:开启注解支持;
                                transaction-manager属性:事务管理器
        业务层实现类:
                @Service注解:获取业务层的bean对象;
                @Transactional注解:配置事务的属性
                        propagation属性:指定事务;
                        readOnly属性:指定是否只读;
                        ...(如果各方法的事务属性不同,需要单独配置)
        持久层实现类:
                @Repository注解:获取持久层的bean对象;
                @Autowired注解:定义变量JdbcTemplate 进行自动类型注入;
        注:该方式配置方便,使用(事务的属性配置)较繁琐;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马