Class Environ

java.lang.Object
io.leandev.appfuse.env.Environ

public class Environ extends Object
環境配置工具類,提供應用程式環境屬性的存取與管理功能。

此類別採用單例模式,提供統一的配置存取介面,支援 Spring Environment 以及獨立模式(非 Spring 環境)的屬性讀取。

主要功能包括:

  • 應用程式路徑管理(conf、data、log、cache 等目錄)
  • 屬性值讀取與類型轉換
  • 獨立配置檔案載入(YAML、Properties)
  • Method Details

    • getInstance

      public static Environ getInstance()
      取得 Environ 單例實例。
      Returns:
      Environ 單例實例
    • config

      public void config(org.springframework.core.env.ConfigurableEnvironment environment)
      設定 Spring 環境配置。
      Parameters:
      environment - Spring 可配置環境實例
    • appName

      public String appName()
      取得應用程式名稱(來自 spring.application.name 屬性)。
      Returns:
      應用程式名稱,若未設定則回傳 null
    • appHome

      public Path appHome()
      取得應用程式根目錄路徑。
      Returns:
      應用程式根目錄的 Path 物件
    • containsProperty

      public boolean containsProperty(@NonNull String key)
      檢查指定的屬性鍵是否存在。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      若屬性存在則回傳 true,否則回傳 false
    • property

      public String property(@NonNull String key)
      取得指定鍵的屬性值。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      屬性值,若不存在則回傳 null
    • property

      public String property(@NonNull String key, String defaultValue)
      取得指定鍵的屬性值,若不存在則回傳預設值。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值,若不存在則回傳 defaultValue
    • propertyAsInteger

      public Integer propertyAsInteger(@NonNull String key, Integer defaultValue)
      取得指定鍵的屬性值並轉換為 Integer。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值的 Integer 表示,若不存在或轉換失敗則回傳 defaultValue
    • propertyAsInteger

      public Integer propertyAsInteger(@NonNull String key)
      取得指定鍵的屬性值並轉換為 Integer。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      屬性值的 Integer 表示,若不存在則回傳 null
    • propertyAsLong

      public Long propertyAsLong(@NonNull String key, Long defaultValue)
      取得指定鍵的屬性值並轉換為 Long。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值的 Long 表示,若不存在或轉換失敗則回傳 defaultValue
    • propertyAsLong

      public Long propertyAsLong(@NonNull String key)
      取得指定鍵的屬性值並轉換為 Long。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      屬性值的 Long 表示,若不存在則回傳 null
    • propertyAsDouble

      public Double propertyAsDouble(@NonNull String key, Double defaultValue)
      取得指定鍵的屬性值並轉換為 Double。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值的 Double 表示,若不存在或轉換失敗則回傳 defaultValue
    • propertyAsDouble

      public Double propertyAsDouble(@NonNull String key)
      取得指定鍵的屬性值並轉換為 Double。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      屬性值的 Double 表示,若不存在則回傳 null
    • propertyAsBoolean

      public boolean propertyAsBoolean(@NonNull String key, Boolean defaultValue)
      取得指定鍵的屬性值並轉換為 boolean。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值的 boolean 表示,若不存在則回傳 defaultValue
    • propertyAsBoolean

      public boolean propertyAsBoolean(@NonNull String key)
      取得指定鍵的屬性值並轉換為 boolean。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      屬性值的 boolean 表示,若不存在則回傳 false
    • propertyAsArray

      public String[] propertyAsArray(@NonNull String key, String[] defaultValue)
      取得指定鍵的屬性值並以逗號分隔轉換為字串陣列。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值的字串陣列,若不存在則回傳 defaultValue
    • propertyAsArray

      public String[] propertyAsArray(@NonNull String key)
      取得指定鍵的屬性值並以逗號分隔轉換為字串陣列。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      屬性值的字串陣列,若不存在則回傳空陣列
    • propertyAsPath

      public Path propertyAsPath(@NonNull String key, String defaultValue, boolean create)
      取得指定鍵的屬性值並轉換為 Path。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      create - 若為 true 則自動建立目錄
      Returns:
      屬性值的 Path 表示
      Throws:
      IllegalArgumentException - 若屬性不存在且未提供預設值
    • propertyAsPath

      public Path propertyAsPath(@NonNull String key, String defaultValue)
      取得指定鍵的屬性值並轉換為 Path(不自動建立目錄)。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值的 Path 表示
    • propertyAsTimeZone

      public TimeZone propertyAsTimeZone(@NonNull String key, TimeZone defaultValue)
      取得指定鍵的屬性值並轉換為 TimeZone。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值的 TimeZone 表示,若不存在則回傳 defaultValue
    • propertyAsLocalTime

      public LocalTime propertyAsLocalTime(@NonNull String key, LocalTime defaultValue)
      取得指定鍵的屬性值並轉換為 LocalTime。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值的 LocalTime 表示,若不存在則回傳 defaultValue
    • propertyAsLocalTime

      public LocalTime propertyAsLocalTime(@NonNull String key)
      取得指定鍵的屬性值並轉換為 LocalTime。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      屬性值的 LocalTime 表示,若不存在則回傳 null
    • conf

      public Path conf()
      取得配置檔案目錄路徑(conf/)。
      Returns:
      配置檔案目錄的 Path 物件
    • conf

      public Path conf(String filename)
      取得配置檔案目錄下指定檔案的路徑。
      Parameters:
      filename - 檔案名稱
      Returns:
      檔案的完整 Path 物件
    • data

      public Path data()
      取得資料目錄路徑(var/data/)。
      Returns:
      資料目錄的 Path 物件
    • index

      public Path index()
      取得索引目錄路徑(var/index/)。
      Returns:
      索引目錄的 Path 物件
    • tpl

      public Path tpl()
      取得範本目錄路徑(var/tpl/)。
      Returns:
      範本目錄的 Path 物件
    • log

      public Path log()
      取得日誌目錄路徑(var/logs/)。
      Returns:
      日誌目錄的 Path 物件
    • cache

      public Path cache()
      取得快取目錄路徑(var/cache/)。
      Returns:
      快取目錄的 Path 物件
    • tmp

      public Path tmp()
      取得暫存目錄路徑(var/tmp/)。
      Returns:
      暫存目錄的 Path 物件
    • backup

      public Path backup()
      取得備份目錄路徑(var/backup/)。
      Returns:
      備份目錄的 Path 物件
    • getJavaVersion

      public String getJavaVersion()
      取得 Java 版本。
      Returns:
      Java 版本字串
    • getJavaVendor

      public String getJavaVendor()
      取得 Java 供應商名稱。
      Returns:
      Java 供應商名稱字串
    • logConfiguration

      public void logConfiguration()
      將所有配置屬性輸出到日誌。
    • isNotProduction

      public boolean isNotProduction()
      檢查當前環境是否為非生產環境。
      Returns:
      若非生產環境則回傳 true,否則回傳 false
    • standaloneContainsProperty

      public boolean standaloneContainsProperty(@NonNull String key)
      檢查指定的屬性鍵是否存在(獨立模式)。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      若屬性存在則回傳 true,否則回傳 false
    • standaloneProperty

      public String standaloneProperty(@NonNull String key)
      取得指定鍵的屬性值(獨立模式)。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      屬性值,若不存在則回傳 null
    • standaloneProperty

      public String standaloneProperty(@NonNull String key, String defaultValue)
      取得指定鍵的屬性值(獨立模式),若不存在則回傳預設值。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值,若不存在則回傳 defaultValue
    • standalonePropertyAsInteger

      public Integer standalonePropertyAsInteger(@NonNull String key, Integer defaultValue)
      取得指定鍵的屬性值並轉換為 Integer(獨立模式)。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值的 Integer 表示,若不存在或轉換失敗則回傳 defaultValue
    • standalonePropertyAsInteger

      public Integer standalonePropertyAsInteger(@NonNull String key)
      取得指定鍵的屬性值並轉換為 Integer(獨立模式)。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      屬性值的 Integer 表示,若不存在則回傳 null
    • standalonePropertyAsBoolean

      public boolean standalonePropertyAsBoolean(@NonNull String key, Boolean defaultValue)
      取得指定鍵的屬性值並轉換為 boolean(獨立模式)。
      Parameters:
      key - 屬性鍵名稱
      defaultValue - 預設值
      Returns:
      屬性值的 boolean 表示,若不存在則回傳 defaultValue
    • standalonePropertyAsBoolean

      public boolean standalonePropertyAsBoolean(@NonNull String key)
      取得指定鍵的屬性值並轉換為 boolean(獨立模式)。
      Parameters:
      key - 屬性鍵名稱
      Returns:
      屬性值的 boolean 表示,若不存在則回傳 false