Spring中的AOP

一、概述

(一)基本概念
1、什么是AOP?
面向方面编程。所谓方面即是指日志、权限、异常处理、事务处理等。
2、AOP的3个关键概念
(1)切入点(Pointcut):Pointcut是Join Point的集合,Join Point就是需要注入Adivce的位置,也就是需要插入日志输出代码、事务处理代码等“方面”(Aspect,也就是AOP中的A)代码的地方。
比如我现在要写一个存钱的方法:saving()
通常情况下我就得在这个saving()方法前后写些事务代码
如:
logger.log(Level.INFO,”start”);
Saving();
logger.log(Level.INFO,”end”);
对于事务代码而言,saving()方法的前后就都是Join Point了。在Spring中它对应config.xml中设定的方法,这个方法就是类(class)中需要进行某方面处理的方法(method)。
 (2)通知(Advice):就是指Join Point对应的代码(方法)。比如日志输出这个方面,指的就是日志输出的代码或方法了。在Spring中,它对应类(class)。
(3)Advisor是Poincut和Advice的配置器,它包括Pointcut和Advice,是将Advice注入程序中Pointcut位置的代码。在Sping中,它对应config.xml中的配置段<bean id=logAdvisor class=”org.springframework.aop.support.RegexpMethodPointcutAdvisor”>

二、实例讲解

首先我们先看这个例子
切面(可以是日志、安全性的检查、权限、事务)等工作,这些就叫做切面。。。。
切面中的方法是什么呢?---切面中的方法是通知
织入:
连接点:客户端调用那个方法,那个方法就是连接点。
aop的最本质的作用:代码块的重用。
问题来了--那如果我们有n个切面,就是开发的时候分配任务,你写你的,我写我的,最后在使用所有的切面即可,我们该怎样调用呢?
这是个最全的方法名称,实际上是来限定一个方法的
1
2
3
4
5
6
7
8
9
10
11
12
13
配置如下:
<aop:config>
    <aop:aspect id="security" ref="securityHandler">
        <aop:pointcut id="allAddMethod" expression="execution(* com.lsb.spring.UserManagerImpl.add*(..))"/>
        <aop:before method="checkSecurity" pointcut-ref="allAddMethod" />
    </aop:aspect>
    </aop:config>

来自为知笔记(Wiz)

Spring自学教程-AOP学习(五)相关推荐

  1. python自学教程-Python学习教程(一)自学资源分享

    在我看来,基本上可以不负责任地认为,Python 可以做任何事情.无论是从入门级选手到专业级选手都在做的爬虫,还是Web 程序开发.桌面程序开发还是科学计算.图像处理,Python都可以胜任. 或许是 ...

  2. python自学教程推荐-学习python中的pandas有没有好的教程推荐?

    上来就丢教程和资料,其实是把路带偏了!找到学习Pandas的方法比找教程重要的多!现在无论是学习Python还是Pandas,最大的问题不是没有资料,而恰恰是太多资料和教程,让人抓不住头绪. 很多凭着 ...

  3. Spring自学教程-ssh整合(六)

    以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址 感谢您支持我的博客,我的动力是您的支持和关注!如若转载和使用请注明转载地址 ...

  4. spring核心之AOP学习总结二

    一:springAOP常用的注解 @Aspect:声明方面组件 @Before:声明前置通知 @After-returning:声明后置通知 @After:声明最终通知 @Around:声明环绕通知 ...

  5. Spring自学教程-注解的使用(三)

    一.java中的注解 定义注解 下面是一个定义注解的实例. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documen ...

  6. Spring Boot教程(十五)使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程...

    在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建.而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也 ...

  7. 【python教程入门学习】python值得学吗,怎么自学?

    python值得学吗,怎么自学?python有用吗?有以下工作内容的人python一定有用的: python能做什么,python自学行吗? (1)长期和数据excel打交道的人,或者整理文本等数据格 ...

  8. [Spring+SpringMVC+Mybatis]框架学习笔记(四):Spring实现AOP

    上一章:[Spring+SpringMVC+Mybatis]框架学习笔记(三):Spring实现JDBC 下一章:[Spring+SpringMVC+Mybatis]框架学习笔记(五):SpringA ...

  9. 六个office免费学习的精品教程 office自学教程让你从小白到高手

    今天给大家分享六个免费学习的精品教程,包括了word,ppt,excel常用的办公三剑客,学会这三个让你办公无忧,也能让你靠这些技术找到一份好工作,这些office自学教程让你从小白到高手. 一.PP ...

  10. java学习day40(Spring)spring中的aop和基于XML以及注解的AOP配置

    第1章 AOP 的相关概念[理解] 1.1AOP 概述 1.1.1 什么是 AOP AOP :全称是 Aspect Oriented Programming 即:面向切面编程. 简单的说它就是把我们程 ...

最新文章

  1. 从认知学到进化论,详述强化学习两大最新突破
  2. 除了速度,5G还能带来什么?
  3. metasploit快速入门(一)安装部署
  4. SpringMVC:学习笔记(4)——处理模型数据
  5. xshell添加脚本
  6. iPhone开发中的一些小技巧
  7. IDEA下SVN基本使用
  8. linxu安装OSX
  9. Hadoop-HBASE案例分析-Hadoop学习笔记二
  10. c语言实现socket转json,C++实现json形式的Socket传输图片
  11. Jsoup消除不受信任的HTML(用于防止XSS的攻击)
  12. [javaME]摩托罗拉V300-V500-V600同时播放音乐的讲究
  13. OpenCV图像处理(14)——文件夹下所有图像转灰度
  14. iPhone开发 No IB UITextField 设置圆角
  15. paip.论.NET体系的优缺点).txt
  16. Intel 的 micro-architecture 发展历程
  17. WindowsServer2012搭建FTP服务器站点
  18. zblogphp 广告联盟_zblog模板添加广告位置的方法
  19. code review流程规范
  20. 机器学习03:人工神经网络

热门文章

  1. KVM/QEMU桥接网络设置[zz]
  2. HtmlTextWriter类的学习
  3. 企业库2.0培训系列课程大纲[意见征询]
  4. Deeplabv3+-训练自己的数据集
  5. noip 2010 引水入城(dfs + 贪心)
  6. 大专生自学web前端到找到工作的经验
  7. IOS contentOffset该如何理解
  8. lamp php的ssl,ssh支持
  9. Tomcat - SSL操作大全
  10. 百度地图 android SDKv2.2.0