首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2SE

Java 私有建構子實戰(二):HibernateSessionFactory 實例化失敗與解決

     編輯:J2SE

問題場景

在 Struts 應用中,HibernatePlugin 嘗試實例化 HibernateSessionFactory 時拋出錯誤:

HibernateSessionFactory() has private access in zy.pro.td.util.HibernateSessionFactory at line 35

原因在於 HibernateSessionFactory 的建構子被宣告為 private,外部類無法直接 new 實例。

代碼片段:HibernatePlugin

public class HibernatePlugin implements PlugIn {
    private HibernateSessionFactory hsf;
    public HibernatePlugin() {
        hsf = new HibernateSessionFactory(); // 編譯/運行時報錯
    }
    // ... 其他方法
}

解決方案

將 HibernateSessionFactory 的建構子改為 public 即可通過編譯並正常運行。但這也暴露了單例模式的實現細節——私有建構子通常配合靜態工廠方法使用,直接實例化違背了設計初衷。

最佳實踐提示

  • 若類採用單例模式,應提供 getInstance() 靜態方法,而非開放建構子。
  • 外部調用時應使用 HibernateSessionFactory.getInstance() 獲取實例。

本文來自編程入門網:原文連結

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved