在项目中,有的API接口需要进行用户是否登录的验证,一开始就是编写一个公共方法,然后在需要使用的地方调用一下。后来觉得不方便,有不少地方需要调用,都要这么手动Copy一下。于是琢磨看看能否使用aop实现。
首先,在**-servlet.xml配置文件中增加aop注解支持:
<!-- AOP配置 -->
<aop:aspectj-autoproxy proxy-target-class="true">
</aop:aspectj-autoproxy>
编写切点,切面。随便举个列子,可能不是和本主题相关。比如在某个getVerifyCode()方法进行切点插入:
//定义切面
@Aspect
@Component("recorder")
public class Recorder
{
@Autowired
@Qualifier("userService")
private IUserService userService;
// 定义切点,该方法无方法体,主要为方便同类中其他方法使用此处配置的切入点
@Pointcut("execution(* *.getVerifyCode(..))")
public void sayTitle()
{
}
// 前置
@Before("sayTitle()")
public void recordBeforeHelloWorld()