AOP(面向切面编程)
1.AOP是什么
AOP是面向切面编程,能够让我们在不影响原有功能的前提下,为软件横向扩展功能
2.搭建SpringAOP
使用aspect实现aop的基本步骤:
1.新建maven项目
2.加入依赖
(1) spring依赖
(2)aspectj依赖
(3) junit单元测试
3.创建目标类:接口和他的实现类。要做的是给类中的方法增加功能
4.创建切面类:普通类
(1)在类的上面加入@Aspect
(2)在类中定义方法,方法就是切面要执行的功能代码在方法的上面加入aspectj中的通知注解,例如@Before有需要指定切入点表达式execution()
5.创建spring的配置文件:声明对象,把对象交给容器统―管理声明对象你可以使用注解或者xml配置文件<bean>
(1)声明目标对象
(2)声明切面类对象
(3)声明aspectj框架中的自动代理生成器标签。
自动代理生成器:用来完成代理对象的自动创建功能的。
6.创建测试类,从spring容器中获取目标对象(实际就是代理对象)。通过代理执行方法,实现aop的功能增强。
1.添加依赖
<dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>aopalliance</groupId><artifactId>aopalliance</artifactId><version>1.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>5.1.5.RELEASE</version></dependency>
2.在applicationContext.xml中声明bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsd"><!--目标类--><bean id="userDao" class="com.hxci.aop.dao.impl.UserDaoImpl"/><bean id="studentDao" class="com.hxci.aop.dao.impl.StudentDaoImpl"/><bean id="scoreDao" class="com.hxci.aop.dao.impl.ScoreDaoImpl"/><!--切面类--><bean id="myAspect" class="com.springmvc.aop.xml.bean.MyAspectImpl"/><!--代理--><bean id="userDaoProxy" class="org.springframework.aop.framework.ProxyFactoryBean"><!--指定代理实现的接口--><property name="proxyInterfaces" value="com.hxci.aop.dao.UserDao"/><!--指定目标对象,切入点--><property name="target" ref="userDao"/><!--指定切面,织入环绕通知--><property name="interceptorNames" value="myAspect"/></bean><!--声明自动代理生成器:使用aspectj框架内部的功能,创建目标对象的代理对象。创建代理对象是在内存中实现的,修改目标对象的内存中的结构。创建为代理对象所以目标对象就是被修改后的代理对象.aspectj-autoproxy :会把spring容器中的所有的目标对象,一次性都生成代理对象。--><aop:aspectj-autoproxy proxy-target-class="true"/></beans>
AOP(面向切面编程)相关推荐
- java aop面向切面编程
最近一直在学java的spring boot,一直没有弄明白aop面向切面编程是什么意思.看到一篇文章写得很清楚,终于弄明白了,原来跟python的装饰器一样的效果.http://www.cnblog ...
- 【AOP 面向切面编程】Android Studio 使用 AspectJ 监控方法运行原理分析
文章目录 一.查看使用 AspectJ 后生成的 Class 字节码类 二.AspectJ 的本质 一.查看使用 AspectJ 后生成的 Class 字节码类 在 Android Studio 中查 ...
- 【AOP 面向切面编程】Android Studio 中配置 AspectJ ( 下载并配置AS中 jar 包 | 配置 Gradle 和 Gradle 插件版本 | 配置 Gradle 构建脚本 )
文章目录 一.AspectJ 下载 二.拷贝 aspectjrt.jar 到 Android Studio 三.配置 Gradle 和 Gradle 插件版本 四.配置 Gradle 构建脚本 一.A ...
- 【AOP 面向切面编程】AOP 简介 ( AspectJ 简介 | AspectJ 下载 )
文章目录 一.AOP 简介 二.AspectJ 简介 三.AspectJ 下载 一.AOP 简介 AOP 是 Aspect Oriented Programming 的缩写 , 面向切面编程 ; 利用 ...
- 切面是异步还是同步操作‘_Autofac的AOP面向切面编程研究
什么是AOP: 我的理解是 把系统性的编程工作封装起来 =>我给这个取个名字叫 "Aspect",然后通过AOP技术把它切进我们的业务逻辑代码 => "业务& ...
- Javascript aop(面向切面编程)之around(环绕)
Aop又叫面向切面编程,其中"通知"是切面的具体实现,分为before(前置通知).after(后置通知).around(环绕通知),用过spring的同学肯定对它非常熟悉,而在j ...
- 大数据WEB阶段Spring框架 AOP面向切面编程(一)
Spring - AOP面向切面编程(一) 一.代理模式概述 代理的特点:(目标对象即被代理者) 实现和目标对象相同的接口 具备和目标对象的方法 代理者不仅要做目标对象的方法 , 还要做一些额外的操作 ...
- 大数据WEB阶段Spring框架 AOP面向切面编程(二)
Spring AOP面向切面编程(二) 一.切入点的execution表达式 execution的表达形式: execution(修饰符? 返回值类型 所在包类? 方法名(参数列表) 异常?) ?表示 ...
- AOP(面向切面编程)大概了解一下
前言 上一篇在聊MemoryCache的时候,用到了Autofac提供的拦截器进行面向切面编程,很明显能体会到其优势,既然涉及到了,那就趁热打铁,一起来探探面向切面编程. 正文 1. 概述 在软件业, ...
- Autofac的AOP面向切面编程研究
我的理解是 把系统性的编程工作封装起来 =>我给这个取个名字叫 "Aspect",然后通过AOP技术把它切进我们的业务逻辑代码 => "业务" 这样 ...
最新文章
- 0基础java应聘_不想搞Java了,6年经验去面试10分钟结束,现在Java面试为这么难...
- from __future__ import print_function 介绍
- mxnet基础到提高(44)-ndarray.arange创建行向量
- 修改PATH导致fedora无法登录XWindow
- 了解java.nio.file.Path – 2
- 友盟小米收不到推送消息_Android 推送集成华为,小米,友盟
- NET中对象的构建过程
- w ndows10专业版连接不上网,Windows10连不上无线网怎么办 Windows10修复网络教程
- rs485数据线接反_rs485接口怎么接线?弱电人必学RS485接口基础知识讲解
- 2020身高体重标准表儿童_2020儿童身高标准表出炉,10岁长到1米4才合格,你家娃达标了吗...
- 用ssms建sql server数据库和python连接到数据库
- 数据库、模式、表的关系(转载)
- 蒲公英wifi怎么卸载干净_蒲公英wifi怎么卸载干净
- 全国大学生英语竞赛考题总结
- 浏览器标签页形式运行【js代码】,小书签
- EasyNVR H5无插件摄像机直播解决方案前端解析之:监控实时直播的四分屏的前端展示
- python爬虫requests的库使用详解
- WdatePicker日历控件参数配置大全
- 男生除了干计算机软件还有什么职业,理想男朋友职业都有哪些?前10名竟然是……...
- 文件上传漏洞—一句话图片马制作