一、整体思路
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.<