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

Java 計數器教學(六):JavaBean 版——分層架構落地

     編輯:Java 相關知識

本篇將計數器邏輯從 JSP Scriptlet 中抽離,封裝為 JavaBean (POJO),實現表現層與業務層分離,為後續 Spring/Hibernate 整合鋪路。

JavaBean 計數器完整代碼(截圖文字化)

JavaBean 版計數器截圖

package com.counter.model;

public class CounterBean {
    private long count = 0;
    private final Object lock = new Object(); // 實例級鎖

    public long getCount() { return count; }
    public void setCount(long count) { this.count = count; }

    // 線程安全的遞增操作
    public synchronized long incrementAndGet() {
        return ++count;
    }
}

JSP 頁面調用

<%@ page import="com.counter.model.CounterBean" %>
<% 
    // 從 application 域取得單例 Bean
    CounterBean bean = (CounterBean) application.getAttribute("counterBean");
    if (bean == null) {
        bean = new CounterBean();
        application.setAttribute("counterBean", bean);
    }
    long count = bean.incrementAndGet();
%>
當前訪問次數:<%= count %>

分層架構優勢

層次職責代碼位置
表現層頁面渲染、參數接收、結果輸出JSP / Servlet
業務層計數邏輯、同步控制、狀態封裝CounterBean (POJO)
持久層(本版暫無)後續可注入 DAO 實現檔案/資料庫持久化CounterDao / Hibernate

關鍵改進

  1. 業務邏輯可測試:CounterBean 可獨立單元測試,無需啟動 Web 容器。
  2. 同步封裝:synchronized 內建於 Bean 方法,JSP 無需關心併發細節。
  3. 單例模式:application 域存放唯一實例,全應用共享計數狀態。
  4. 擴展彈性:未來只需修改 Bean 內部實現(改檔案、改資料庫、改 Redis),JSP 完全不用動。

遺留問題

  • 仍依賴 application 域,重啟歸零、集群不同步。
  • 手動管理 Bean 生命週期(application setAttribute/getAttribute)。

下一篇將整合 Hibernate,實現 ORM 持久化與 Spring 容器管理 Bean 生命週期。

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