shiro中权限注解原理分析
概述 前不久刚学会使用权限注解(),开始思索了一番。最开始猜测实现方式是注解@Aspect,具体实现方式类似如下所示(切面记录审计日志)。后来发现并非如此,所以特地分析一下源码。 @Component @Aspect public class AuditLogAspectConfig { @Pointcut("@annotation(com.ygsoft.ecp.mapp.basic.audit.annotation.AuditLog) || @annotation(com.ygsoft.ecp.mapp.basic.audit.annotation.AuditLogs)") public void pointcut() { } @After(value="pointcut()") public void after(JoinPoint joinPoint) { //执行的逻辑 } ... } 权限注解的源码分析 DefaultAdvisorAutoProxyCreator 这个类实现了 BeanProcessor 接口,当 ApplicationContext 读取所有的Bean配置信息后,这个类将扫描上下文,寻找所有的 Advistor (一个 Advisor 是一个切入点和一个通知的组成),将这些 Advisor 应用到所有符合切入点的Bean中。