自我学习SSM框架集成

Posted mr-bing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自我学习SSM框架集成相关的知识,希望对你有一定的参考价值。

关于事务管理

  对于数据库的增删改查有时候要求两件事只能同时发生或者同时不发生,这时候就要使用事务管理

       做事务管理需要额外的jar才行,所以先下载aspectjweaver.jar,并添加至Idea中。

      然后再用以下两种方法进行实现

 

SSM事务管理的实现(一)

通过XML配置方式:修改applicationContext,以支持AOP方式

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

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource" ref="dataSource" />

    </bean>

     

    <tx:advice id="txadvice" transaction-manager="transactionManager">  

        <tx:attributes>  

            <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception" />  

            <tx:method name="del*" propagation="REQUIRED" rollback-for="Exception"/>

            <tx:method name="edit*" propagation="REQUIRED" rollback-for="Exception" />

            <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/>  

            <tx:method name="list*" propagation="REQUIRED" rollback-for="Exception"/>  

        </tx:attributes>  

    </tx:advice>  

        

    <aop:config>  

        <aop:pointcut id="serviceMethod" expression="execution(* com.how2java.service.*.*(..))"/>  

        <aop:advisor pointcut-ref="serviceMethod" advice-ref="txadvice"/>  

    </aop:config>       

"execution(* com.how2java.service.*.*(..))"
这个意思是对于service文件夹下的所有文件夹的所有类方法来搜索txadvice中提到的方法 然后进行捆绑回滚

SSM事务管理的实现(二)

一、修改applicationContext添加 

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

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource" ref="dataSource" />

    </bean>

二、对为addTwo方法加上事务注解

@Service

public class CategoryServiceImpl  implements CategoryService{

    @Autowired

    CategoryMapper categoryMapper;

     

    public List<Category> list(){

        return categoryMapper.list();

    }

 

    public void deleteAll() {

        List<Category> cs = list();

        for (Category c : cs) {

             

            categoryMapper.delete(c.getId());

        }

    }

     

    @Override

    @Transactional(propagation=Propagation.REQUIRED,rollbackForClassName="Exception")

    public void addTwo() {

         

        Category c1 = new Category();

        c1.setName("短的名字");

        categoryMapper.add(c1);

         

        Category c2 = new Category();

        c2.setName("名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,名字长对应字段放不下,");

        categoryMapper.add(c2);

    };

 

}
 

 



以上是关于自我学习SSM框架集成的主要内容,如果未能解决你的问题,请参考以下文章

SSM-框架搭建-tank后台学习系统

集成代码生成器 单表 多表 树形表 一对多 springmvc spring mybatis SSM 后台框架

SSM框架集成(附源码)

SSM框架

java SSM框架 代码生成器 websocket即时通讯 shiro redis 后台框架源码

Java高并发秒杀系统API之SSM框架集成swagger与AdminLTE