基於 Spring、Hibernate 等開源框架的 J2EE 專案,配置管理應遵循「簡化優先、關注點分離、類型適配、團隊協作、適度約定」五大實踐。
@Component、@Autowired 等,大幅減少 Bean 定義 XML。hibernate.properties 替代冗長 XML。以 Spring + Hibernate 為例,將 DataSource、SessionFactory 等 Spring 基礎設施配置與 Hibernate 方言、映射檔路徑等領域配置拆分為兩個檔案:
applicationContext.xml:僅管 Spring Bean、事務、資料源hibernate.properties:專注方言、連線參數、映射路徑(用 classpath*:persist/** 批量載入)優勢:團隊成員獨立維護持久化類映射,避免版本衝突;目錄結構清晰,新成員易上手。
| 類型 | 適用場景 | 優缺點 |
|---|---|---|
| XML | 全域公共配置(DataSource、事務、SessionFactory) | 結構化強、工具支援好,但冗長 |
| Annotation | Bean 定義、領域物件映射(Hibernate Entity) | 贴近代碼、維護成本低,但學習成本高、屬性與 XML 不互通 |
| Properties | Hibernate 全域屬性、簡單鍵值對 | 語義清晰、易編輯,但無法指定映射類 |
建議:基礎設施用 XML,業務 Bean 用 Annotation,領域模型視團隊偏好選擇。
公共全域配置用 XML,私有 Bean 配置用 Annotation;領域物件傾向 XML 做關注點分離。CoC 需配合文檔,避免過度隱式導致新成員困惑。