1. 程式人生 > >通過反射實現javaweb專案中許可權的重新整理

通過反射實現javaweb專案中許可權的重新整理

記錄是為了更好的成長!

 

1、貼一段實際專案的中的程式碼

/**
     * @Methods: permissionreload
     * @Description: 許可權過載 
     * @return
     */
    @RequestMapping("/permissionreload")
    public String permissionreload() {
        
        //0、從資料庫中查出所有許可權,進行對比,如果已經存在,跳過,不在新增
        List<String> resouceList = permissionService.listPermissionUrls();
        
        
//1、獲取Controller中所有的RequestMapping Map<RequestMappingInfo,HandlerMethod> handlerMethods = rmhm.getHandlerMethods(); Collection<HandlerMethod> values = handlerMethods.values(); for(HandlerMethod method:values) { //2、遍歷所有方法,判斷當前方法是否貼有@RequiresPermissions 許可權控制標籤
RequiresPermissions anno = method.getMethodAnnotation(RequiresPermissions.class); if(anno != null) { //取得許可權表示式 String resourcesUrl = anno.value()[0]; //去除重複 if(resouceList.contains(resourcesUrl)) {
continue; } //封裝物件,新增到資料庫表中 Permission p = new Permission(); p.setUrl(resourcesUrl); //設定許可權名稱 p.setPname(method.getMethodAnnotation(PermissionName.class).value()); //儲存到資料庫 permissionService.add(p); } } return "/login/login"; }

 

 

 

 

 

 

 

 

 

 

 

以上內容代表個人觀點,僅供參考,不喜勿噴。。。