Yuque Archive
寻常的路

Spring之AOP

A类为普通Bean,B类为切面,在获取A的实例后执行其play方法时,Spring会自动调用B中设置的切点。

注解方式配置切面

新建A类:

src/test1/A.java

声明其为Component,这就是一个普通的Bean。

新建B类作为切面,除了被声明为切面之外,它与普通Bean没有区别:

src/test1/B.java

连接点不止before和after两个。参数中"*"代表任意返回类型,".."代表任意参数类型。这里的注解配置意为,分别在test1.A.play()方法调用之前和之后调用B类中的相应方法。

使用Java配置,新建Config类:

src/test1/Config.java

配置类除了开启配置和自动扫描,还使用EnableAspectJAutoProxy切面的自动代理。

新建场景类Run,用于测试切面:

src/Run.java

运行程序可看到before和after分别在play前后打印。

XML方式配置切面

使用xml配置的方式,类中就不需要任何注解。

新建包test2,新建A类:

src/test2/A.java

新建B类:

只是删掉了注解。不再需要Config.java,取而代之的是config.xml:

src/config.xml

这里的配置效果和注解配置是一样的。最后是运行类Run:

src/test2/Run.java

运行效果一致。

参考: