Java反射注解妙用(获取所有接口说明)

本文介绍了如何利用Java反射来获取所有接口的详细信息,特别是在进行项目重构和权限管理时,这种方法能有效减少工作量。通过定义接口信息对象,然后在测试接口如UserController中使用注解,最后在主函数中通过反射获取注解的属性,从而实现快速收集接口数据并存入数据库。
摘要由CSDN通过智能技术生成

前言

最近在做项目权限,使用shiro实现restful接口权限管理,对整个项目都进行了重构。而权限管理需要用到所有的接口配置,包括接口url地址,接口唯一编码等。想要收集所有的接口信息,如果工程接口很多,工作量可想而知。

这里用了反射,来获取所有接口的信息,接口再多,也不过几秒钟的事。

使用

Auth.java

接口信息对象

主要包括授权地址,权限唯一标识,权限名称,创建时间,请求方式

package com.wwj.springboot.model;
import java.io.Serializable;
import java.util.Date;
public class Auth implements Serializable {
 private String authName;
 private String authUrl;
 private String authUniqueMark;
 private Date createTime;
 private String methodType;
 //get set 省略
}

UserController.java

用户接口,用于测试的接口。

这里使用了标准的restful接口风格,swagger自动API接口,shiro 接口权限注解@RequiresPermissions组合成的一个controller。当然也可以使用其他技术,只要能获取到接口信息就行。

注解不重要,重要的是注解里的信息。

package com.wwj.springboot.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/users")
@Api(value = "用户管理", tags = {"用户管理"})
public class UserController {
 @GetMapping
 @ApiOperation("获取列表")
 @RequiresPermissions("user:list")
 public void list() {
 System.out.pr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值