61.什么是AOP?
以下是个人的理解。AOP即面向切面编程,在项目中,将某一功能层如数据层,控制层等抽取出来,增加新的功能,AOP的开发相当于将面向某个切面的代码以从左到右的方式进行织入,避免了代码中的逻辑混乱,其修改和维护仅影响到自身以及切入点的实现。
AOP通知分为:前置通知,后置通知,环绕通知,异常通知,最终通知。它们之间执行时间或者作用不同。
2.创建项目,引入jar包。
新建一个web项目,将spring的基本包,日志包及AOP的开发包、后续要用到的整合测试包导入项目。如图所示。

图片发自简书App

图片发自简书App
3.创建要进行切面编程的基本计算类Calculate,其功能有计算税率,计算利息。如图所示。

图片发自简书App
4.创建切面类,切面类中包含对各切点增加的方法和功能。
在此仅做后置通知,创建四个方法,计算并返回税率和利息。使用AOP的注解方式。方法注解为@AfterReturn(value=“类名.处理切点的方法名”),再创建统一的切点方法指向要添加功能的方法,切点的注解方法如图。这样可对一个切点增加多个方法功能。

图片发自简书App
5.新建XML,将客户类与切面类交由Spring框架管理。
新建applicationContext.xml,在其中加入约束(建议网上自己找...)将切面类与测试类编入XML,交由spring管理。测试类可先假定为democlass。

图片发自简书App
6.编写测试类
如图所示,需载入springjunit4runner.class和applicationContext.xml,再使用IOC注解直接创建计算类实例,调用方法执行。执行结果如图所示。

图片发自简书App

图片发自简书App