Spring框架之浅析AOP切面编程
2017-11-27 12:30
344 查看
1.前言
提到Spring,都知道最基本的控制反转(IOC),依赖注入(DI)以及切面编程(AOP)。技术理论都是需要通过实践去证明和运用的,长时间不接触不运用,就容易淡忘。今日抽空再次温习AOP这个技术点。AOP切面编程,说简单点在我们所写了很多不相关联的程序中(纵向),横向植入一段编程代码,从而达到我们想要目的。何为横向,可能很多人跟我一样,觉得很抽象,不能理解。其实很多资料上已经有图片做讲解,那我就用一个字来做比喻。例如卅(sa)字,我们所写的众多运行方法或逻辑代码就好比这三个竖,可能他们是毫不相关的,但是他们会需要用到一段共同的代码(比如用户校验),那么这一横(即aop)即可帮我们来完成这一操作。aop不会改变我们的编辑代码,但是却能起到影响程序运行结果的效果,这就是它的魅力所在。
2.代码演示
下面我们就以一个简单的例子来小试牛刀。首先需要配置xml文件,像我们平时的spring-mvc.xml等,在其中配置上先引入aop所需配置。如图:
然后开始编写Demo代码。先创建一个接口类:
再编写2个接口的实现类
package com.jokerchen.test.AopDemo; public class PersonA implements DoSomeThing{ private String name = "MuMu"; @Override public void sayHello() { // TODO Auto-generated method stub System.out.println(name + "正在say hello!"); } @Override public String doAction() { // TODO Auto-generated method stub String string = "然后" + name + "去了网咖!"; return string; } }
package com.jokerchen.test.AopDemo; public class PersonB implements DoSomeThing{ private String name = "Shakula"; @Override public void sayHello() { // TODO Auto-generated method stub System.out.println(name + "正在say hello!"); } @Override public String doAction() { // TODO Auto-generated method stub String string = "然后" + name + "去到了Coffee Store!"; return string; } }
现在我们开始编写我们需要植入的AOP代码,这里我们简单的写一个打印时间的功能测试:
最后来一段测试代码:
到这里,我们代码demo已经编写完成。接下来需要配置aop的切面切点信息。如下:
至此,我们的准备工作都做完了。可以启动测试类TestMethod来看看结果如何:
结果一目了然,我们配置的before和after效果顺利执行。
3.总结
在使用过程中,注意创建接口实现类的对象时,不能用new,必须用spring的容器加载创建,否则不会有效果。还有需要加入aopalliance.jar和aspectjweaver.jar这两个包,否则项目会报错。最后还是希望有兴趣的朋友能够一起学习,有不足之处尽情提出。
相关文章推荐
- aop(面向切面)编程思想在spring框架下实现的配置方法
- AOP(面向切面编程概念,本文为翻译)
- 面向切面编程--AOP(转)
- spring框架—AOP编程的两种实现方式
- Spring AOP 切面编程的方法
- Aop_面向切面编程_思想理解资料01
- iOS的AOP(面向切面)编程--Aspects
- AOP切面编程applicationContext.xml的配置
- Spring AOP编程中--@aspect 标签,切面编程
- spring 基于Aspect和注解的切面编程(aop)
- Spring笔记——使用Spring进行面向切面(AOP)编程
- 面向切面编程的介绍和使用(Spring框架)
- Spring 面向切面(AOP)编程,注解
- 面向切面编程AOP的浅显理解(一)
- Java实现AOP面向切面编程的实例教程
- 基于Spring框架的切面编程
- 面向切面编程--AOP
- 【转】面向切面编程-AOP,挺有用的
- 从源码入手,一文带你读懂Spring AOP面向切面编程
- js实现面向切面的编程(AOP)