操作界面
步驟一:菜單權限配置。
完成一個功能開發,需要在界面上面有一個入口,實際操作如下:
1、菜單管裡添加一個菜單、
2、結合實作的代碼,配置菜單參數
從上述截圖,講解權限菜單配置原理:
1)、菜單配置的請求位址,對應java代碼的@RequestMapping("/monitor/server")服務。
2)、菜單配置的權限辨別對應@RequiresPermissions("monitor:server:view"),登入的使用者有這個授權辨別,RequiresPermissions才能驗證通過。否則拒絕使用者通路。
3、儲存菜單
4、編輯角色,授權這個角色擁有菜單入口
步驟二:重新整理點選左側菜單欄目-監控管理->服務監控
監控内容包括:CUP,記憶體,伺服器資訊,JVM虛拟機資訊
代碼解析
1、頁面代碼路徑截圖如下:
2、下面分别對Thymeleaf模版對th:block和th:include這兩個标簽進行解說
<head>
<th:block th:include="include :: header('伺服器監控')" />
</head>
th:block是一個屬性容器,是Thymeleaf提供的唯一的一個塊級元素,可以使用<th:block></th:block>定義片斷塊,并在裡面添加任何的th屬性;
特殊性在于Thymeleaf模闆引擎在處理th:block的時候會删掉它本身,标簽本身不顯示,而保留其内容,在循環的時候特别有用。
th:include的用法也跟th:replace類似。但是差別
th:include:引入子子產品的children,依然保留父子產品的tag。 加載模闆的内容: 讀取加載節點的内容(不含節點名稱),替換div内容
th:replace:引入子子產品的所有,不保留父子產品的tag。 替換目前标簽為模闆中的标簽,加載的節點會整個替換掉加載他的div
上述的include引入的頁面路徑是:
include.html的用處是:引入通用的第三方js,每個頁面隻需要引入這個html就可以,不需要每個頁面都将第三方的js引用,這樣代碼簡明多了。
如下代碼是引入底部html頁面:
<th:block th:include="include :: footer" />
java背景解析
@RequiresPermissions("monitor:server:view")
@GetMapping()
public String server(ModelMap mmap) throws Exception
{
Server server = new Server();
server.copyTo();
mmap.put("server", server);
return prefix + "/server";
}
public void copyTo() throws Exception
{
SystemInfo si = new SystemInfo();
HardwareAbstractionLayer hal = si.getHardware();
setCpuInfo(hal.getProcessor());
setMemInfo(hal.getMemory());
setSysInfo();
setJvmInfo();
setSysFiles(si.getOperatingSystem());
}
oshi-core一個基于Java的(本機)作業系統資訊庫,旨在提供跨平台實作來檢索系統資訊,如版本、記憶體、CPU、磁盤、電池等。
maven依賴
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>6.2.2</version>
</dependency>
未來計劃
1、ruoyi非分離版本拆解
2、ruoyi-vue-pro:講解工作流
3、ruoyi-vue-pro:支付子產品,電商子產品
4、基于ruoyi-vue-pro項目開發
5、JEECG低代碼開發平台
請關注我,本星球會持續推出更多的開源項目代碼解析,如有更好的意見請留言回複或者私信。
#頭條創作挑戰賽#