一、整体思路
1、先自定义一个用于权限管理的注解
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Authority {
String module();//模块
String privilege();//权限,如果是多个权限,可以是数组
}
2、在对应的业务逻辑方法上使用注解声明权限
package cn.com.bochy.biz;
import cn.com.bochy.authority.annotation.Authority;
/*
* 具体业务逻辑类
*/
public class EmployeeManager {
@Authority(module="employee2",privilege="query")
public void queryAll() {
//实际代码应从数据库中查询出数据
System.out.println("查询所有的雇员信息");
}
}
3、查询用户和用户对应的权限
4、解析出注解信息,和查询用户和用户对应的权限进行比较,看是否具有对应权限
二、具体实现
1、架构
2、代码实现
1、Authority.java
package cn.com.bochy.authority.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/*
* 自定义用于权限管理的注解
* @author:chenzhengfeng
*
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Authority {
String module();//模块
String privilege();//权限,如果是多个权限,可以是数组
}
2、EmployeeManager.java
package cn.com.bochy.biz;
import cn.com.bochy.authority.annotation.Authority;
/*
* 具体业务逻辑类
*/
public class EmployeeManager {
@Authority(module="employee2",privilege="query")
public void queryAll() {
//实际代码应从数据库中查询出数据
System.out.println("查询所有的雇员信息");
}
}
3、Admin.java
package cn.com.bochy.entity;
Java Annotation深度实践:注解实现权限管理

本文深入探讨了如何使用Java注解(@Annotation)实现权限管理系统。首先自定义了一个名为`Authority`的注解,声明在业务逻辑方法上以标注权限信息。接着,通过查询用户和其权限,解析注解信息并与之对比,以此来判断用户是否具备执行特定操作的权限。文章详细介绍了整个实现过程,包括关键类和方法的设计,并提供了测试案例。
最低0.47元/天 解锁文章
174

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



