AOP是一种编程思想,相对于OOP来说,AOP更关注于某一种功能广泛应用于多个功能,比如说事务管理、日志记录等。举个例子,假如我要在用户登录前记录日志,还要在用户进行某种操作前也记录日志,还要在...前记录日志,那么是不是要在这些功能的实现里面都要加上一个记录日志的操作呢?那么,假如记录日志的操作发生了某些变动,那么是不是每个实现都要进行改动?太麻烦了。
所以,为了解耦,降低编程的重复性,这个时候使用AOP就非常合适了。接下来实现一个非常简单的例子来实现一个AOP,在用户登录前和登录后都进行一些操作,这次使用AspectJ来实现(个人认为使用Spring自带的太麻烦了)。
因为只是为了实现一个简单的AOP,所以功能尽可能精简,从某种程度来讲,这也是一种解耦的思想。哈哈。
国际惯例,先上pom:
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Demo</groupId>
<artifactId>SpringByAspectJ</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SpringByAspectJ</name>
<url>http://maven.apache.org</url>
<properties>
<proj