單體應用 前後整合 2 使用者選單

2021-10-03 02:01:24 字數 2544 閱讀 7104

之前sql初始化資料中,也包含了部分選單許可權資料。

這邊我們後端先把選單的資料初始化到redis中存放,提供api供前端呼叫,

然後再調整下前端測試。

後端將使用者選單資料初始化到redis

dao模組中,先增加個常量:

public

inte***ce

redisconstant

定義個類用於返回選單資料格式的物件:

public

class

menu

初始化redis的類中,用json格式存放使用者選單:

@component

public

class

initredisdata

implements

commandlinerunner..

.}catch

(exception e)

logger.

info

("結束初始化redis資料.");

}private string changetostring

(list

sysroles)

roles = sb.

tostring()

.substring(0

, sb.

tostring()

.length()

-1);

}return roles;

}/**

* 根據使用者名稱獲取選單列表

* @param username

* @return string (json)

*/private string getusermenus

(string username)

} result = json.

tojsonstring

(menus);}

return result;

}public

void

addchildmenu

(menu parent, sysperm sysperm, list

list)}}

}

redis的倉庫提供方法供呼叫:

@repository

public

class

systeminforedis

}

service模組寫個方法供controller呼叫:

這邊我將json又轉換成list物件,比較繞。

因為controller使用@responsebody, api返回的物件會再轉成json寫入response,

直接用json賦值返回物件的話, 會再次被轉化為json, 「 會就會被轉義成 /」 。

應該有更好的方式,不用這樣在service中再轉成list物件,待研究。

@service

public

class

userservice

return menus;

}}

最後contoller:

請求***的時候已經將解析完的使用者資訊放入currentuser物件中,這邊直接使用來獲取當前發起請求的使用者。

@restcontroller

public

class

logincontroller

}

使用postman測試下,get請求帶header token訪問 localhost:8080/api/currentmenu ,

可以看到返回正確的資料了。

,,

],"icon":""

,"name"

:"系統管理"}]

}

接下來調整下前端

首先config中配置下路由:

這裡permmanage和usermanage具體功能還沒開發,先借用下./admin做顯示。

,,

,,,]

,},

關閉下選單的國際化:

該功能暫時用不上,在defaultsettings中將menu.locale設定成false

menu:

,

最後更改下發起請求:

/services/user.js

export

async

function

querycurrentmenu()

開啟前後端服務,測試一下,ok

剩下的就是實現下系統管理和業務層面的功能了,具體實現應該就不會再寫了。

bye~

乙個架構的演化2 用ESB整合

乙個第三方,需要我們的資料 建立乙個專案組,開發乙個gateway,連線到我們系統,提供資料。又乙個第三方,需要我們主動推資料 再開發乙個gateway,將資料按客戶要求推過去。n多第三方,資料協議,格式都不同 引入esb,做協議適配,訊息路由,gateway變成資料格式轉換器。只是它是按需定製的,...

JBPM 3 1 4的J2EE應用整合初探

因為專案需要,準備引入jbpm 3.1.4,因為我們的專案是基於 spring 2 hibernate 3 struts2 的,而spring modules整合jbpm 是 3.1.4 版的,所以用了jbpm 3.1.4 高版本的設計器還不相容 myeclipse 所以採用jbpm 3.1.4還是...

用apache2部署Django應用

環境要求 ubuntu14.04及以上,python3.4及以上 檢視系統版本 cat etc issue python2可能導致importerror no module named django錯誤 檢視python版本 python version 一般ubuntu系統自帶python,在 u...