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

JBuilder2005 + JBoss 4.0 開發 Session Bean 實戰(三):EJB Designer 視覺化建立 Session Bean

     編輯:Java 相關知識

JBuilder2005 + JBoss 4.0 開發 Session Bean 實戰(三):EJB Designer 視覺化建立 Session Bean

承接前兩篇(環境準備、Log4j 配置),本篇使用 JBuilder 內建 EJB Designer 以視覺化方式建立 Stateful Session Bean,自動生成 Bean 類、Local/Remote 介面、Home 介面代碼。

1. 新建 EJB Module

  1. 選單 New → Enterprise → EJB → EJB Designer。
  2. 彈出對話框選 New → Create empty EJB Module,名稱 Trader,一路 OK。

2. 視覺化設計 Session Bean

在右側 EJB Designer 視窗右鍵選單操作:

  1. Create EJB → Session Bean。
  2. 屬性面板修改:
    • Name: UserInfo
    • Interface: Local(本地介面,效能較好)
    • Session Type: Stateful(有狀態)
    • 其餘預設。
  3. Add → Field 新增三個屬性:
    • userName (String)
    • userAge (String)
    • loginTime (String)
  4. Add → Method 新增業務方法:
    • Name: showUserInfo
    • Return Type: HashMap
    • Interface: Local
  5. Add → ejbCreate 新增建構方法:
    • Parameters: String userName, String userAge, String loginTime
    • Home Interfaces: Local Home
  6. View Bean Source 可隨時檢視生成代碼。

3. 自動生成的三個核心類別

UserInfoBean.java — 實作類

package trader;
import javax.ejb.*;
import java.util.HashMap;
import org.apache.log4j.Logger;

public class UserInfoBean implements SessionBean {
    private static final Logger _logger = Logger.getLogger(UserInfoBean.class);
    private SessionContext sessionContext;
    private String userName, userAge, loginTime;

    public UserInfoBean() { try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); } }

    public void ejbCreate(String userName, String userAge, String loginTime) throws CreateException {
        _logger.debug("Session Bean is Created.");
        this.userName = userName; this.userAge = userAge; this.loginTime = loginTime;
    }
    public void ejbCreate() throws CreateException {}
    public void ejbRemove() {}
    public void ejbActivate() {}
    public void ejbPassivate() {}
    public void setSessionContext(SessionContext ctx) { this.sessionContext = ctx; }

    public HashMap showUserInfo() {
        HashMap map = new HashMap();
        map.put("userName", this.userName);
        map.put("userAge", this.userAge);
        map.put("loginTime", this.loginTime);
        return map;
    }
    private void jbInit() throws Exception {}
}

UserInfoLocal.java — Local Component Interface

package trader;
import javax.ejb.EJBLocalObject;
import java.util.HashMap;
public interface UserInfoLocal extends EJBLocalObject {
    public HashMap showUserInfo();
}

UserInfoLocalHome.java — Local Home Interface

package trader;
import javax.ejb.*;
public interface UserInfoLocalHome extends EJBLocalHome {
    public UserInfoLocal create() throws CreateException;
    public UserInfoLocal create(String userName, String userAge, String loginTime) throws CreateException;
}

關鍵設計決策解析

決策點選擇理由
介面類型Local同 JVM 內調用,避免 RMI 序列化開銷,效能優於 Remote
Session 類型Stateful需保持用戶會話狀態(userName, userAge, loginTime)
ejbCreate 參數三個 String對應前端傳入的用戶資料,初始化 Bean 狀態
日誌框架Log4j專業級日誌,配置靈活,已在前篇整合

EJB Designer 將繁瑣的部署描述符(ejb-jar.xml)、介面代碼、實作骨架一次生成,開發者專注於業務邏輯(showUserInfo())。下一篇將建立測試客戶端、打包部署驗證。

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