zoukankan      html  css  js  c++  java
  • SpringAOP测试

    简单转账功能

    新建Java项目

    SpringAopLieJie;设置Maven版本、配置文件以及仓库

    mysql创建数据

    # 删除spring_aop数据库
    drop database if exists spring_aop;
    # 创建spring_aop数据库
    create database spring_aop;
    # 使用spring_aop数据库
    use spring_aop;
    # 创建account表
    create table account (
    id int(11) auto_increment primary key,
    accountNum varchar(20) default NULL,
    money int(8) default 0
    );
    # 新增数据
    insert into account (accountNum, money) values
    ("622200001",1000),("622200002",1000);

    导包

    Spring连接Mysql

    项目代码结构:

    Utils——数据库连接工具类:ConnectionUtils.java

    entity——实体类:Account.java

    Dao层:AccountDao.java

    Dao层实现类:AccountDaoImpl.java

    Service层:AccountService.java

    Service层实现类:AccountServiceImpl.java

    Test——测试类:AccountTest.java

    测试结果:

    mysql结果图:

    报异常——用事务处理,开启事务,提交、回滚等

    引入代理模式解决事务

    事务管理器:TransactionManager.java

    事务代理工具类:TransactionProxyUtils

    引入AOP

    代码:

    1.删除事务代理工具类:TransactionProxyUtils

    2.导包

    <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
    <dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.3</version>
    </dependency>

    3.添加AOP配置——

    <!-- aop相关的节点配置 -->
    <aop:config>
    <!-- 切入点 表示哪些类的哪些方法在执行的时候会应用Spring配置的通知进行增强 -->
    <aop:pointcut expression="execution ( * services.*.*(..))" id="pc"/>
    <!-- 配置切面类的节点 作用主要就是整合通知和切入点 -->
    <aop:aspect ref="transactionManager">
    <aop:before method="beginTransaction" pointcut-ref="pc"/>
    <aop:after-returning method="commit" pointcut-ref="pc"/>
    <aop:after method="release" pointcut-ref="pc"/>
    <aop:after-throwing method="rollback" pointcut-ref="pc"/>
    </aop:aspect>
    </aop:config>
  • 相关阅读:
    关于分布式的一些理解和认识
    Git使用详细教程
    Kettle 7启动 Spoon.bat 时报错“A Java Exception has occurred.”的解决方法
    postgresql 9源码安装
    intel笔记本cpu型号后缀详解(M,U,QM,MQ,HQ,XM)
    LAMP部署流水
    四种mysql存储引擎
    MySQL日志
    MySQL存储引擎总结
    MySQL存储引擎中的MyISAM和InnoDB
  • 原文地址:https://www.cnblogs.com/Anm214/p/14586704.html
Copyright © 2011-2022 走看看