Aop切面,myBatis,Spring

Aop

AO解决OOP中遇到的一些问题.是OOP的延续和扩展.

优点

在不修改源码的情况下,对程序进行增强

AOP 可以进行权限校验,日志记录,性能监控,事务控制

底层实现

AOP依赖于IOC来实现

动态代理

proxy    代理的对象

method    代理的方法

args    方法的参数

Throwable 异常

@Override

public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

        // 前置操作

        before(method);

        // 通过被代理对象调用真正需要执行的方法

        Object res = method.invoke(target, args);

        // 后置操作

        after(method);

        return res;

    }

AOP相关术语

Joinpoint    连接点

Advice       通知/增强

Pointcut     切入点

Introduction 引介

Target       目标对象

Weaving      织入

Proxy        代理

Aspect       切面

注解方式

  1. 引入jar包  spring-aop  aspectjweaver

  2. 配置文件  开启AOP注解 <aop:aspectj-autoproxy />  

通过注解的方式开启切面支持 @EnableAspectJAutoProxy

  1. 创建AOP类  @Aspect

  2. 拦截@Pointcut("execution(public * com.tledu.zrz.spring.service..*.add(..))")

  3. 创建被代理的方法xxx()

  4. @Before("xxx()") 前置通知

  5. @After("xxx()") 后置通知

  6. @Around("xxx()") 环绕通知

  7. 测试

Spring-mybatis整合

  1. 引入依赖 spring-jdbc mybatis mybatis-spring mysql-connector-java druid

  2. 添加mybatis的配置mybatis-config.xml  配置别名  配置mapper

  3. 添加数据库配置jdbc.propertise  配置数据库信息

  4. 配置spring配置文件 applicationConfig.xml 

1配置注解扫描  

2配置包扫描

3配置切面支持

4读取jdbc.propertise内容

5连接数据库

6读取SqlsessinoFactory工厂类

7搜索mapper实现类自动配置bean

        通过注解的方式扫描mapper可以通过@MapperScan("com.tledu.spring_mybatis.mapper")

  1. 添加日志配置

  2. 创建mapper

  3. 测试

    1.引入依赖

2.配置mybatis

3配置spring,在spring中集成mybatis

3.1读取jdbc配置文件

3.2 配置druid数据库连接池

3.3 配置sqlSessionFactory

3.4 配置mapper扫描

4. 可以通过注入的方式使用mapper

4.1 Service没有起名字

4.2 警告useSSL=false

4.3 一直连接不上()

4.4. 为了知道连接不上的原因,添加日志配置

4.5 原因是时区问题,在url中添加时区的配置

事务

添加依赖

   <dependency>

     <groupId>org.springframework</groupId>

     <artifactId>spring-tx</artifactId>

     <version>${spring.version}</version>

  </dependency>、

添加配置

      <!-- 使使用注解配置的事务行为生效 -->

    <tx:annotation-driven transaction-manager="txManager"/><!-- 仍然需要一个PlatformTransactionManager -->

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

        <!-- (这个需要的对象是在其他地方定义的) -->

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

    </bean>

使用注解

   @Transactional(rollbackFor = Exception.class)

流程:

  1. 增加事务的配置

  2. 添加事务的注解

  1. rollbackFor:回滚的时机

  2. isolation:隔离级别

**************本次总结由李华帅友情提供

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值