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(面向切面编程)相关推荐

  1. java aop面向切面编程

    最近一直在学java的spring boot,一直没有弄明白aop面向切面编程是什么意思.看到一篇文章写得很清楚,终于弄明白了,原来跟python的装饰器一样的效果.http://www.cnblog ...

  2. 【AOP 面向切面编程】Android Studio 使用 AspectJ 监控方法运行原理分析

    文章目录 一.查看使用 AspectJ 后生成的 Class 字节码类 二.AspectJ 的本质 一.查看使用 AspectJ 后生成的 Class 字节码类 在 Android Studio 中查 ...

  3. 【AOP 面向切面编程】Android Studio 中配置 AspectJ ( 下载并配置AS中 jar 包 | 配置 Gradle 和 Gradle 插件版本 | 配置 Gradle 构建脚本 )

    文章目录 一.AspectJ 下载 二.拷贝 aspectjrt.jar 到 Android Studio 三.配置 Gradle 和 Gradle 插件版本 四.配置 Gradle 构建脚本 一.A ...

  4. 【AOP 面向切面编程】AOP 简介 ( AspectJ 简介 | AspectJ 下载 )

    文章目录 一.AOP 简介 二.AspectJ 简介 三.AspectJ 下载 一.AOP 简介 AOP 是 Aspect Oriented Programming 的缩写 , 面向切面编程 ; 利用 ...

  5. 切面是异步还是同步操作‘_Autofac的AOP面向切面编程研究

    什么是AOP: 我的理解是 把系统性的编程工作封装起来 =>我给这个取个名字叫 "Aspect",然后通过AOP技术把它切进我们的业务逻辑代码 => "业务& ...

  6. Javascript aop(面向切面编程)之around(环绕)

    Aop又叫面向切面编程,其中"通知"是切面的具体实现,分为before(前置通知).after(后置通知).around(环绕通知),用过spring的同学肯定对它非常熟悉,而在j ...

  7. 大数据WEB阶段Spring框架 AOP面向切面编程(一)

    Spring - AOP面向切面编程(一) 一.代理模式概述 代理的特点:(目标对象即被代理者) 实现和目标对象相同的接口 具备和目标对象的方法 代理者不仅要做目标对象的方法 , 还要做一些额外的操作 ...

  8. 大数据WEB阶段Spring框架 AOP面向切面编程(二)

    Spring AOP面向切面编程(二) 一.切入点的execution表达式 execution的表达形式: execution(修饰符? 返回值类型 所在包类? 方法名(参数列表) 异常?) ?表示 ...

  9. AOP(面向切面编程)大概了解一下

    前言 上一篇在聊MemoryCache的时候,用到了Autofac提供的拦截器进行面向切面编程,很明显能体会到其优势,既然涉及到了,那就趁热打铁,一起来探探面向切面编程. 正文 1. 概述 在软件业, ...

  10. Autofac的AOP面向切面编程研究

    我的理解是 把系统性的编程工作封装起来 =>我给这个取个名字叫 "Aspect",然后通过AOP技术把它切进我们的业务逻辑代码 => "业务" 这样 ...

最新文章

  1. 0基础java应聘_不想搞Java了,6年经验去面试10分钟结束,现在Java面试为这么难...
  2. from __future__ import print_function 介绍
  3. mxnet基础到提高(44)-ndarray.arange创建行向量
  4. 修改PATH导致fedora无法登录XWindow
  5. 了解java.nio.file.Path – 2
  6. 友盟小米收不到推送消息_Android 推送集成华为,小米,友盟
  7. NET中对象的构建过程
  8. w ndows10专业版连接不上网,Windows10连不上无线网怎么办 Windows10修复网络教程
  9. rs485数据线接反_rs485接口怎么接线?弱电人必学RS485接口基础知识讲解
  10. 2020身高体重标准表儿童_2020儿童身高标准表出炉,10岁长到1米4才合格,你家娃达标了吗...
  11. 用ssms建sql server数据库和python连接到数据库
  12. 数据库、模式、表的关系(转载)
  13. 蒲公英wifi怎么卸载干净_蒲公英wifi怎么卸载干净
  14. 全国大学生英语竞赛考题总结
  15. 浏览器标签页形式运行【js代码】,小书签
  16. EasyNVR H5无插件摄像机直播解决方案前端解析之:监控实时直播的四分屏的前端展示
  17. python爬虫requests的库使用详解
  18. WdatePicker日历控件参数配置大全
  19. 男生除了干计算机软件还有什么职业,理想男朋友职业都有哪些?前10名竟然是……...
  20. 文件上传漏洞—一句话图片马制作

热门文章

  1. python svm参数_python SVM 案例,sklearn.svm.SVC 参数说明
  2. 修改antd下拉框样式
  3. java中socket学习_java的socket学习
  4. 系列课程 ElasticSearch 之第 9 篇 —— ELK (ElasticSearch、Logstash、Kibana)分布式日志收集和查看(完结)
  5. 对数(log)的换算公式
  6. STM32----矩阵按键
  7. Java线程的状态及主要转化方法
  8. 临床试验数据管理系统
  9. 健康管理软件 PHP,健康管理信息系统
  10. 如何将数字转化为中文大写