文件池配置
文件池,又名文件組,指一個特定的文件夾內的所有yaml。 該文件夾內的yaml必須符合統一的格式,以確保文件映射能有效運作。
範例
創建文件映射物件,該映射物件必須繼承 GroupConfiguration。
然後,使用 @GroupResource 標註你的文件夾位置。
@GroupResource(folder = "Books")
public class Book extends GroupConfiguration {
public String title;
public String author;
public String description;
public int pages;
public List<String> contents;
}@GroupResource 有兩個屬性,第一個是必填的 folder, 第二個是選填的 preloads. 在 preloads 中,你可以透過填入 文件名稱 (可以多個) 來預先複製 jar 內的文件到插件資料夾內。
@GroupResource(
folder = "Books",
preloads = { "internal" } // 假設你 jar 內有 /Books/internal.yml 的文件
)
public class Book extends GroupConfiguration {
public String title;
public String author;
public String description;
public int pages;
public List<String> contents;
}Yaml 文件組 (以書本為範例)
註冊文件池
然後,便可以開始使用。
使用
使用可以透過 GroupConfig<T> 進行注入,但在標註上並非使用 @Inject,而是使用 @InjectPool 。
請勿使用 @Inject 注入 GroupConfig<T>, 否則會報錯。
從上述範例當中,我們註冊了 Book 作為 文件池組別,使用則如下範例:
GroupConfig<T> 採用 DAO pattern,其源碼如下:
要注意的是,GroupConfig<T> 本身的操作並不是異步的,你需要自行實作異步。但它本身亦有快取功能,能大程度上加快二次獲取。
有時候你可能需要手動去獲取特定類型的 GroupConfig<T>,這時候你應該使用文件池服務。
文件池的讀寫操作
v0.1.3 之後,文件池將允許刪除,創建及更新指定文件。
GroupConfig<T> 在獲取指定文件之後,將會把其儲存到快取,直到被刪除和更新。若要手動清除快取,可以調用 fetch 或者調用 fetchById 來清除指定文件。
除此之外,你也可以透過 文件池 創建文件。範例如下:
刪除指定文件的範例則如下:
文件池分頁操作
v0.1.4 之後,文件池可以被分頁提取,並提供過濾,頁數,和每頁數量等控制,以更好於界面上呈現。
最后更新于