利用org.springframework.beans.factory.InitializingBean自動生成檔案目錄
阿新 • • 發佈:2019-01-24
做專案時如果遇到檔案處理,經常會遇到檔案目錄不存在這個問題,因為它不是業務處理的核心部分,
起碼我是不想花時間去檢查目錄有沒有,需不需要我自己去建立?
但這個微小的事情又經常能讓程式報錯,每次自己去建立的話也覺得這些程式碼是冗餘的,影響程式核心業務閱讀性
最終我在專案中使用了spring的InitializingBean介面來做一些初始化操作
package org.springframework.beans.factory; public interface InitializingBean { void afterPropertiesSet() throws Exception; }
為了增加閱讀性,並沒有直接實現這個介面 ,而是先繼承這個介面
/** * 檔案目錄初始化介面 * @author wengjc * */ public interface FileInitIF extends InitializingBean { }
接下來就可以寫一個目錄父類
/** * 建立檔案通用父類 * @author wengjc * */ public class Dir implements FileInitIF { private static Logger log = Logger.getLogger(Dir.class); @Override public void afterPropertiesSet() throws業務DIR繼承通用父類,並配置好目錄即可在spring factory初始化時完成自動建立,開發人員可以更專注於業務Exception { Field[] fields = this.getClass().getFields(); for (int i = 0; i < fields.length; i++) { String path = null; try { path = (String) fields[i].get(this); if (null != path) { FileUtil.createDir(path); } } catch(IllegalArgumentException e) { log.error(path+"建立檔案目錄失敗:"+e.getMessage()); } catch (IllegalAccessException e) { log.error(path+"建立檔案目錄失敗:"+e.getMessage()); } } } }