設定說明

引用元件

  • Maven 設定

    pom.xml 加入以下項目。

    <dependency>
        <groupId>com.iisigroup</groupId><artifactId>iisi-ude-filesystem</artifactId>
    </dependency>
    

環境架構與設定說明

Spring Context 應加入 LogicalFileSystemConfiguration 以定義以下 6 個主要的元件 bean。

  • FileSystem fileSystem
  • LogicalFileMapper logicalFileMapper;
  • FileMonitor fileMonitor
  • FileWriteFacade fileWriteFacade
  • FileReadFacade fileReadFacade
  • FileCompressFacade fileCompressFacade

宣告方式參考如下:

  • XML

    <bean class="com.iisigroup.ude.configuration.LogicalFileSystemConfiguration">
    
  • JavaConfig

    加入 import

    @Configuration
    @Import({ LogicalFileSystemConfiguration.class //
            , ....})
    public class RxxBasicConfiguration {
    

UDE 邏輯檔案系統設定

  • 邏輯檔案系統會至以下路徑取得設定檔:

    ${config.path}/UDE/com.iisigroup.ude.filesystem.properties

Location

在程式中建立邏輯檔案,必須利用 LogicalFileLocation 介面指定「邏輯根目錄」。

  • LogicalFileLocation.getName() 的回傳值,必須在 ~filesystem.properties 中有對應設定項目。
  • 一般建議專案定義 ENUM 表示路徑,避免因使用字串宣告而造成的意外不一致錯誤(如大小寫問題)。
    • 以下範例定義有三組邏輯檔案根目錄 : TEMP、DATA、WM_PIC。
      public enum SampleLocation implements LogicalFileLocation {
        DAILY_DATA,   TEMP,   WM_PIC ;
        @Override
        public String getName() {
            return this.name();
        }
      }
      
  • 邏輯檔案系統設定檔,主要的作用是定義實體檔案的對應位置(Location),範例如下:
    location.TEMP = ${temp.path}
    location.DAILY_DATA = ${data.path}/%Y%%M%/%D%
    location.WM_PIC = ${resource.path}/picture:R
    
    • 設定中,以「location.」為前綴的項目,即是邏輯檔案位置(Location)定義。
    • 命名有區別大小寫,如 Temp 不等於 TEMP。
    • 實務上不見得只能定義目錄,如果要對應到單一檔案位置,其實也無不可。
    • 定義內容說明如下:
檔案系統變數

可使用UDE檔案系統變數值進行設定,如「${temp.path}」。標準支援項目應有以下幾項:

* global.config.path
* global.resource.path
* global.data.path
* config.path
* resource.path
* data.path
* temp.path
* log.path
時間與TAG變數應用

所有的UDE邏輯檔案(LogicalFile)都記錄有一個對應時間,預設為物件建立時間。 以「${data.path}/%Y%%M%/%D%」為例,即指向專案資料路徑下對應日期的年月日目錄,像「~/201612/09」。

另外,在建立 LogicalFile 時也可以指定Tag,在邏輯路徑中可以用 %TAG% 表示。 如專案需要以自訂原則(像使用者帳號)區分存放目錄,也可以使用此特性定義。

# %Y%    西元年,如:2015 
# %TWY%    民國年,如:104
# %M%    月,如:05
# %D%     日,如:21
# %h%     時(24H),如:09 / 19 
# %m%      分,如:00
# %TAG%    自訂TAG參數
邏輯唯讀:

若在邏輯路徑的最後加上「:R」,表示此路徑下的檔案為邏輯唯讀。 如果透過邏輯檔案元件的 IO 介面操作寫入,會抛出 Exception 提醒此為非法存取。

但無法限制使用者以其它方式寫入檔案。通常用在資源檔案像是「${resource.path}/picture:R」;或者是不同子專案間,一個負責寫入,一個只能讀取的情境。

results matching ""

    No results matching ""