• 【JavaEE--复习】三、AOP 核心概念、AOP基础操作


    1.Spring AOP简介

    1.1 AOP的作用及其优势

    • 作用:在程序运行期间,在不修改源码的情况下对方法进行增强。
    • 优势:减少重复代码,提高开发效率。

    1.2 AOP的底层实现

    • 实际上,AOP的底层是通过Spring提供的动态代理技术实现的。
    • 在运行期间,Spring通过动态代理技术动态地生成代理对象,代理对象方法执行时进行增强功能的介入,再去调用目标对象的方法,从而完成功能的增强。

    1.3 AOP的动态代理技术

    • JDK代理:基于接口的动态代理技术
    • Cglib代理:基于父类的动态代理技术

    1.4 AOP相关概念

    • Target(目标对象):代理的目标对象
    • Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类
    • Joinpoint(连接点):指被拦截到的点。在Spring中,这些点指的是方法。
    • Pointcut(切入点):指我们要对哪些连接点进行拦截。(所有的连接点都可以是切入点)
    • Adivce(通知/增强):指拦截到连接点之后要做的通知
    • Aspect(切面):是切入点和通知的结合
    • Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程。Spring采用动态代理织入

    1.5开发明确事项

    谁是切点,谁是通知,将切点和通知进行织入配置。

    2.基于XML的AOP开发

    1. 导入AOP相关坐标 (在pom.xml
    2. 创建目标接口和目标类
    3. 创建切面类
    4. 将目标类和切面类的对象创建权交给Spring (在ApplicationContext.xml
    5. 在applicationContext.xml中配置织入关系
    6. 测试代码

    结构:
    在这里插入图片描述
    pom.xml

    
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0modelVersion>
    
        <groupId>org.examplegroupId>
        <artifactId>Lab5-SpringAOP-1.1artifactId>
        <version>1.0-SNAPSHOTversion>
    
    
        <dependencies>
            <dependency>
                <groupId>org.springframeworkgroupId>
                <artifactId>spring-contextartifactId>
                <version>5.0.5.RELEASEversion>
            dependency>
    
            <dependency>
                <groupId>org.aspectjgroupId>
                <artifactId>aspectjweaverartifactId>
                <version>1.9.2version>
            
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    数据库分库分表<====>分布式事务
    Mybatis动态sql
    Python实现模块热加载
    C++ 类和对象(A)
    MySQL 清空分区表单个分区数据
    Appium+Python3安装教程
    【HTML】HTML基础系列文章小小总结,运用标签写出网页!
    关于加密解密有哪些你需要知道知识?一篇文章告诉你
    R统计-单因素ANOVA/Kruskal-Wallis置换检验
    Hystrix学习
  • 原文地址:https://blog.csdn.net/ketemstion/article/details/127573757