應用常需讀取 key=value 格式配置檔(如伺服器位址、埠號、日誌等級)。本文提供通用 Profile 基類與業務擴展 GenProfile,支援型別安全存取。
java.util.Properties,載入/儲存檔案(ISO-8859-1 編碼)。Server.cfg 或指定路徑。String getString(key, defaultVal)
boolean getBoolean(key, defaultVal) // 大小寫不敏感 true/false
int getInt(key, defaultVal) // 解析失敗自動回寫預設值
Properties getProperty() // 取得完整 Properties 物件
void showConfig() // 列印至 System.out
loadConfig()、saveConfig() 含異常保護(載入失敗預設值、儲存失敗記錄日誌)。針對專案固定鍵名封裝語意方法:
String getListenerImpl() // Listener 實作類全名
InetAddress getServerAddress() // 解析 IP/主機名
int getListenAt() // 監聽埠,預設 80
int getTimeout() // 逾時秒數,預設 120
boolean statelessService() // 無狀態服務旗標
String getLogLevel() // 日誌等級
String getLogPath() // 日誌路徑
String cfgFile = "server.cfg";
GenProfile env = new GenProfile(cfgFile);
InetAddress addr = env.getServerAddress();
int port = env.getListenAt();
// ... 業務邏輯直接使用強型別值
配置檔範例:
Listener = org.kyle.net.svr.sample.SampleListenerImpl
ServerAddress = 127.0.0.1
ListeningPort = 80
ListenerTimeout = 120
StatelessService = true
LogLevel = ALL
LogPath = server.log
原始碼採雙層設計:Profile 通用性強、GenProfile 業務語意化,便於維護與擴展。