| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> AOP基础学习 -> 正文阅读 |
|
[Java知识库]AOP基础学习 |
什么是AOP(1)面向切面(方面)编程,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率 (2)通俗描述,不通过修改源代码方式,在主干功能里面添加新功能 (3)使用登录例子说明AOP AOP术语(1)连接点 (2)切入点 (3)通知(增强) ? (4)切面 AOP准备?? ? 1,spring框架一般都是基于AspectJ实现AOP操作 ?????(1)AspectJ不是Spring组成部分,独立于AOP框架,一般把AspectJ和Spring框架一起使用,进行AOP操作 ? ?2,基于AspectJ实现AOP操作 ????(1)基于xml配置文件实现 ? ? (2)基于注解方式实现(使用) ? ?3,在项目工程里引入AOP相关依赖 4,切入点表达式 (1)切入点表达式作用:知道对哪个类里面的哪个方法进行增强 (2)语法结构 execution([权限修饰符][返回类型][类全路径][方法名称](参数列表)) 举例1:对ssp_Spring.UserDao类里面的add进行增强 execution(* ssp_Spring.UserDao.add(..)) 举例2:对ssp_Spring.UserDao类里面的所有方法进行增强 execution(* ssp_Spring.UserDao.*(..)) 举例3:对ssp_Spring包里所有类所有方法进行增强 execution(* ssp_Spring.*.*(..)) AOP操作(AspectJ注解)1,创建类,在类里面定义方法
2,创建增强类(编写增强逻辑) (1)在增强类里面创建方法,让不同方法代表不同通知类型
3,进行通知的配置 ?????(1)在spring配置文件在,开启注解扫描
(2)使用注解创建User’和UserProxy对象 ????????被增强
增强实现 (3)在增强的类上面添加注解@Aspect ? (4)在spring配置文件中开启生成代理对象
注:去类上边找有@Aspect的类生成代理对象 4,配置不同类型的通知 (1)在增强类的里面,在作为通知方法上面添加通知类型注解,使用切入点表达式配置
5,测试 ?????????测试类
? ? ? ? 运行结果 ?6,相同切入点抽取
7,有多个增强类对同一个方法进行增强,设置优先级 (1)在增强类上边添加注解@Order(数字类型值),数字类型值越小优先级越高 8,完全注解开发
9,AOP操作(AspectJ配置文件) (1)创建两个类,增强类和被增强类,创建方法 (2)在spring配置文件中创建两个类对象
(3)在spring配置文件中配置切入点
注:代理部分没有写请参考其它文章 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:04:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |