熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Eclipse+JBoss+EJB3的Session Bean注釋方法

2013-11-23 19:02:39  來源: Java核心技術 

  有時需要在Session Bean中初始化和釋放一些資源這些工作應該在SessionBean的@PostConstruct和@PreDestroy方法中進行其中用 @PostConstruct注釋的方法在SessionBean的構造方法調用之後以後EJB容器在處理完一些其他工作後調用用 @PreDestroy注釋的方法在SessionBean的對象實例被EJB容器銷毀之前調用

  除此之外當有狀態的SessionBean存在一定時間未被調用時EJB容器會將該SessionBean對象鈍化(Passivate)也就是保存在硬盤中當再次訪問時EJB容器會激法該SessionBean在這兩種情況下EJB容器會分別調用SessionBean的 @PrePassivate和@PostActivate方法可以在@PrePassivate方法中將sessionbean中的資源保存或釋放如打開的數據庫連接等在@PostActivate方法中可以恢復相應的資源如下面的代碼所示


  package service;  

  

  import javautilArrayList;  

  import javautilList;  

  import javaxannotationPostConstruct;  

  import javaxannotationPreDestroy;  

  import javaxannotationResource;  

  import javaxejbPostActivate;  

  import javaxejbPrePassivate;  

  import javaxejbSessionContext;  

  import javaxejbStateful;  

  

  @Stateless  

  public class ShoppingCartBean implements ShoppingCart  

  {  

  private List<String> shoppingCart = new ArrayList<String>();  

  @Resource  

  private SessionContext sessionContext;  

  

  public ShoppingCartBean()  

  {  

  Systemoutprintln(constructor: + sessionContext);  

  }  

  @PrePassivate  

  public void MyPassivate()  

  {  

  Systemoutprintln(passivate);  

  }  

  @PostConstruct  

  public void init()  

  {  

  Systemoutprintln(sessionContextgetInvokedBusinessInterface());

  }  

  @PreDestroy  

  public void destory()  

  {  

  Systemoutprintln(destory);  

  }  

  @PostActivate  

  public void start()  

  {  

  Systemoutprintln(start);  

  }  

  @Override  

  public void addCommodity(String value)  

  {  

  

  shoppingCartadd(value);  

  }  

  @Override  

  public List<String> getCommodity()  

  {  

  return shoppingCart;  

  }      

  } 

   


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26185.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.