您的位置:首页 > 编程语言 > Java开发

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这两个包,否则项目会报错。

最后还是希望有兴趣的朋友能够一起学习,有不足之处尽情提出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: