2019独角兽企业重金招聘Python工程师标准>>>

1.准备工作

1.1 准备jar包

2.基于xml的aop实现

2.1创建项目

2.2创建类

2.2.1创建Book类

public class Book {public void add(){System.out.println("Book里面的add方法");
    }
}

2.2.2创建MyBook类

public class MyBook {public void before1(){System.out.println("MyBook中的before方法");
    }
}

2.2.3在xml上面添加

<bean id="book" class="com.xiaobo.aop.Book"></bean>
<bean id="myBook" class="com.xiaobo.aop.MyBook"></bean>
<!--配置aop操作-->
<aop:config>
    <!--配置切入点-->
    <aop:pointcut id="point1" expression="execution(* com.xiaobo.aop.Book.*())"  ></aop:pointcut>

    <!--配置切面
    把增强用到方法后面
    -->
    <aop:aspect ref="myBook">
        <!--配置增强类,method为增强类中哪个方法为前置-->
        <aop:before method="before1" pointcut-ref="point1"></aop:before>
    </aop:aspect>
    <aop:aspect ref="myBook">
        <!--配置增强类,method为增强类中哪个方法为前置-->
        <aop:after method="before1" pointcut-ref="point1"></aop:after>
    </aop:aspect>
</aop:config>

2.2.4进行测试

@Test
public void testaop(){ApplicationContext context=new ClassPathXmlApplicationContext("bean2.xml");
    Book book = (Book) context.getBean("book");
    book.add();
}    

2.2.5结果

3.基于注解的方式

3.1新建一个xml文件,添加如下代码,开启注解;

<!--配置对象-->

    <bean id="book" class="com.xiaobo.aop.Book"></bean>
    <bean id="myBook" class="com.xiaobo.aop.MyBook"></bean>
    <!--一句话自动开启注解aop操作-->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

3.2创建类

//定义切面
@Aspect
public class Book {//定义要以特定增强的方式的增强方法,book先执行
    @Before(value = "execution(* com.xiaobo.aop.MyBook.*(..))")public void add(){System.out.println("Book里面的add方法");
    }
}
public class MyBook {public void before1(){System.out.println("MyBook中的before方法");
    }
}

3.3进行测试

@Test
public void testaop2(){ApplicationContext context=new ClassPathXmlApplicationContext("bean3.xml");
    MyBook book = (MyBook) context.getBean("myBook");
    book.before1();
}

3.4结果

转载于:https://my.oschina.net/u/3745828/blog/1608315

Spring Aop----用idea实现面向切面编程相关推荐

  1. java 切面 注解_Java自学之spring:使用注解进行面向切面编程(AOP)

    学习目的:学会使用注解进行面向切面编程(AOP),实现在面向切面编程(AOP)中,使用XML配置完成的操作. Part 1 修改cn.vaefun.dao.UserServiceImpl.java,在 ...

  2. Spring.NET学习笔记12——面向切面编程(基础篇) Level 300

    AOP即面向切面编程(Aspect Oriented Programming的缩写),是OOP(面向对象编程)的一种延续形式.是通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添 ...

  3. Spring in Action 入门之面向切面编程AOP

    注明:这篇文章一是当成学习笔记,二是给大家提供另一个快速理解学习Spring的参考.欢迎留言讨论,持续更新中~ (该部分是Spring的面向切面编程AOP) 第四章 通知Bean 在软件编程中,散布于 ...

  4. AOP Aspect Oriented Programming 面向切面编程 Spring

    AOP的概述 什么是AOP的技术? Aspect Oriented Programming 的缩写 意为:面向切面编程. AOP是一种编程范式,属于软件工程范畴.指导开发者如何组织程序结构. 利用AO ...

  5. SpringBoot—集成AOP详解(面向切面编程Aspect)

    关注微信公众号:CodingTechWork,一起学习进步. AOP介绍 AOP概述   AOP是Aspect-Oriented Programming,即为面向(切面)方面编程.在维基百科中的解释: ...

  6. 一个简单的Spring的AOP例子(JAVA面向切面编程)

    公司要求分享技术,一个小组九个人,每周一个人,想想讲讲AOP吧,用处也挺大的,果断写了一个小例子,改了改也就成了.这是个简单AOP例子,包括前置通知,后置通知,环绕通知,和目标对象. 目标对象的接口: ...

  7. Spring(4)——面向切面编程(AOP模块)

    Spring AOP 简介 如果说 IoC 是 Spring 的核心,那么面向切面编程就是 Spring 最为重要的功能之一了,在数据库事务中切面编程被广泛使用. AOP 即 Aspect Orien ...

  8. 【SSM】Spring系列——AOP面向切面编程

    文章目录 03 AOP面向切面编程 3.1 AOP概述 3.2 面向切面编程对有什么好处 3.3 模拟AOP框架实现 3.3.1 代码实现版本一 3.3.2 代码实现版本二 3.3.3 代码实现版本三 ...

  9. Spring面向切面编程(AOP)详解

    Spring面向切面编程(AOP)详解 面向切面编程(AOP)是Spring框架的另外一个重要的核心内容. 而在讲AOP之前,先来了解一下动态代理这个概念,因为AOP基于动态代理. 动态代理概念:在程 ...

  10. java spring 面向切面编程_Spring Boot实战系列(3)AOP面向切面编程

    AOP是一种与语言无关的程序思想.编程范式.项目业务逻辑中,将通用的模块以水平切割的方式进行分离统一处理,常用于日志.权限控制.异常处理等业务中. 快速导航 编程范式主要以下几大类 AOP(Aspec ...

最新文章

  1. java批量删除接口怎么定义_教你在Java接口中定义方法
  2. IOS9+基础之警报框弹出和操作表弹出
  3. mysql group by 别名_[转]为什么group by后面不能使用别名(除MySQL)
  4. 常用的HTTP响应头
  5. C#文件流传输[类似于QQ][引]
  6. 土地利用覆被变化的概念_【能源+气候】生物质能碳捕集与封存技术在气候变化下的减排潜力...
  7. pygame显示图片的方法_使用Sprite实现移动动画(Pygame中的精灵类)
  8. linux内核配置成qspi挂载,Zynq-Linux移植学习笔记之十-qspi驱动配置
  9. 马云创造的就业机会多还是毁掉的就业机会多?
  10. IDEA插件开发(简单案例助你快速入门)
  11. 计算机信息管理专科,计算机信息管理大专简历范文
  12. 如何在word中输入函数
  13. 明日方舟登录时服务器显示泰拉,明日方舟泰拉档案馆使用说明
  14. Rebuttal得来的经验
  15. [kubernetes]-k8s in k8s
  16. 球球英雄服务器维护中,球球英雄有效兑换码20208月未过期
  17. 可视化bi平台与大数据分析的关系
  18. Xshell 连接本地虚拟机成功案例
  19. 建筑施工技术【18】
  20. 权威解读:人工智能时代的分子模拟,这个工具不能少

热门文章

  1. appearance 设置公共属性
  2. bash 中的变量可以这么用
  3. 将数据库改为使用登录名密码登陆
  4. 添加或者更新字段说明
  5. IP头结构&其他解析
  6. 银行业务常用基本概念
  7. git2.29.2.2怎么安装_制作Win10安装U盘时install.wim大于4G怎么办?
  8. 汇编 加法减法指令 inc dec add sub neg 标志寄存器测试
  9. 【Linux 内核】实时调度类 ⑥ ( 实时调度类核心函数源码分析 | 插入进程到执行队列 | 从执行队列中选择优先级最高的进程 )
  10. 【Git】Git 分支管理 ( 解决分支合并冲突 | 创建并切换分支 git switch -c feature1 | 修改 feature1 分支并提交 | 修改 master 主版本并提交 )