Spring 基于XML配置的AOP
-
基于XML的面向切面编程(AOP)
要使用本节中描述的AOP名称空间标签,您需要按照以下描述导入springAOP模式您还将在应用程序的CLASSPATH上需要以下AspectJ库。这些库位于AspectJ源码包的'lib'目录中,您可以从网络上下载它们。- Aspectjrt.jar
- Aspectjweaver.jar
- Aspectj.jar
- aopalliance.jar
-
声明切面
使用<aop:aspect>元素声明一个切面,并使用ref属性引用后备bean ,如下所示:就像在前面的章节中看到的那样,在这里将配置“aBean”并注入依赖项。 -
声明切入点
一个切入点有助于确定插入点(即方法)以不同的active来执行的加入。在使用基于XML的配置时,切入点将定义如下以下示例定义了一个名为'businessService'的切入点,该切入点将匹配com.jc2182包下Student类中可用的getName()方法的执行- -
定义通知
您可以使用<aop:{ADVICE NAME}>元素在<aop:aspect>中声明五个通知中的任何一个,如下所示您可以将相同的doRequiredTask或不同的方法用于不同的通知。这些方法将定义为Aspect模块的一部分。 -
基于XML模式的AOP示例
为了理解与基于XML Schema的AOP相关的上述概念,让我们编写一个示例,该示例将实现一些通知。假设拥有一个运行良好的Eclipse IDE,并采取以下步骤来创建Spring应用程序-- 创建一个名称为SpringExample的项目,并在创建的项目的src文件夹下创建一个包com.jc2182。
- 使用“添加外部JAR”选项添加所需的Spring库,如“Spring Hello World示例”一章中所述。
- 在项目中添加特定于Spring AOP的库Aspectjrt.jar,aspectjweaver.jar和Aspectj.jar。
- 在com.jc2182包下创建Java类Logging,Student和MainApp。
- 在src文件夹下创建Beans配置文件Beans.xml。
- 最后一步是创建所有Java文件和Bean配置文件的内容,然后按以下说明运行应用程序。
这是Logging.java文件的内容。这实际上是Aspect模块的一个示例,它定义了要在各个点调用的方法。以下是Student.java文件的内容以下是MainApp.java文件的内容以下是配置文件Beans.xml完成创建源和Bean配置文件后,让我们运行该应用程序。如果您的应用程序一切正常,它将显示以下类似消息:上面定义的<aop:pointcut>选择在com.jc2182包下定义的所有方法。让我们假设,要在特定方法之前或之后执行通知,可以定义切入点以通过用实际的类和方法名称替换切入点定义中的星号(*)来缩小执行范围。以下是修改后的XML配置文件以显示概念如果使用这些配置更改执行示例应用程序,它将打印以下消息