1、自定义注解
自定义注解可以写业务需要的函数逻辑,验证权限
自定义注解有两个必要的元注解:
(1)Target
用来描述注解的修饰范围,共四种:
(a)TYPE:类、接口、enum
(b)METHOD:方法
(c)PARAMETER:方法变量
(d)PACKAFE:包
(2)Retention
用来控制该注解的生命周期,共三种:
(a)SOURCE:源文件中有效,编译无效
(b)CLASS:随源文件编译至class文件中,运行时无效
(c)RUNTIME:运行时也有效
举个栗子
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface PreAuthorize{...验证函数}
2、AOP注入
权限控制需要给特定的业务验证权限,将注解加在需要权限控制的方法上,因此需要AOP注入
@Aspect
@Component
public class PreAuthorizeAspect{
@Around("@annotation(com.ruoyi.common.security.annotation.PreAuthorize)")
public Object around(ProceedingJoinPoint point) throws Throwable{...实现验证函数}
}
(a)写一个Aspect类,加切面注解。
(b)在@Around注解中绑定要验证的自定义注解。
(c)实现该自定义注解中的函数,以完成验证。
本文介绍了如何通过自定义注解和AOP技术在Java Spring环境中实现面向切面的权限控制。自定义注解包含Target和Retention元注解,用于指定作用范围和生命周期。AOP注入则通过Aspect类和@Around注解结合自定义注解进行权限验证,达到代码简洁优雅的效果。

1万+

被折叠的 条评论
为什么被折叠?



