天天看點

若依非分離版-第五十九章:服務監控前後端源碼拆解

作者:源碼解析

操作界面

步驟一:菜單權限配置。

完成一個功能開發,需要在界面上面有一個入口,實際操作如下:

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低代碼開發平台

請關注我,本星球會持續推出更多的開源項目代碼解析,如有更好的意見請留言回複或者私信。

#頭條創作挑戰賽#

繼續閱讀