使用注解来创建切面是AspectJ5所引入的关键特性。AspectJ5之前,编写AspectJ切面需要学习一种Java语言的扩展,但是AspectJ面向注解的模型可以非常简便地通过少量注解把任意类转变成切面。这种新特性是@AspectJ。
通过@AspectJ注解,我们可以重新看看Audience类,使其不需要任何额外的类或Bean声明就能将它转换为一个切面。
Spring无法负责创建切面,不能简单地把一个切面声明为一个bean,当我们要为切面注入一个bean时,我们要想方法得到切面的句柄,用factory-method="aspectOf"可以得到这个切面的句柄,然后注入bean。