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

开发 后端
Eclipse+JBoss+EJB3的使用方法,当有状态的SessionBean存在一定时间未被调用时,当再次访问时,在这两种情况下恢复相应的资源

有时需要在Session Bean中初始化和释放一些资源。这些工作应该在SessionBean的@PostConstruct和@PreDestroy方法中进行。其中用 @PostConstruct注释的方法在SessionBean的构造方法调用之后以后EJB容器在处理完一些其他工作后调用。用 @PreDestroy注释的方法在SessionBean的对象实例被EJB容器销毁之前调用。

除此之外,当有状态的SessionBean存在一定时间未被调用时,EJB容器会将该SessionBean对象钝化(Passivate),也就是保存在硬盘中。当再次访问时,EJB容器会激法该SessionBean。在这两种情况下,EJB容器会分别调用SessionBean的 @PrePassivate和@PostActivate方法。可以在@PrePassivate方法中将sessionbean中的资源保存或释放,如打开的数据库连接等。在@PostActivate方法中可以恢复相应的资源。如下面的代码所示:

  1. package service;  
  2.  
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5. import javax.annotation.PostConstruct;  
  6. import javax.annotation.PreDestroy;  
  7. import javax.annotation.Resource;  
  8. import javax.ejb.PostActivate;  
  9. import javax.ejb.PrePassivate;  
  10. import javax.ejb.SessionContext;  
  11. import javax.ejb.Stateful;  
  12.  
  13. @Stateless  
  14. public class ShoppingCartBean implements ShoppingCart  
  15. {  
  16.     private List<String> shoppingCart = new ArrayList<String>();  
  17.     @Resource  
  18.     private SessionContext sessionContext;  
  19.       
  20.     public ShoppingCartBean()  
  21.     {  
  22.         System.out.println("constructor:" + sessionContext);  
  23.     }  
  24.     @PrePassivate  
  25.     public void MyPassivate()  
  26.     {  
  27.         System.out.println("passivate");  
  28.     }  
  29.     @PostConstruct  
  30.     public void init()  
  31.     {  
  32.         System.out.println(sessionContext.getInvokedBusinessInterface());
  33.     }  
  34.     @PreDestroy  
  35.     public void destory()  
  36.     {  
  37.         System.out.println("destory");  
  38.     }  
  39.     @PostActivate  
  40.     public void start()  
  41.     {  
  42.         System.out.println("start");  
  43.     }  
  44.     @Override  
  45.     public void addCommodity(String value)  
  46.     {  
  47.           
  48.         shoppingCart.add(value);  
  49.     }  
  50.     @Override  
  51.     public List<String> getCommodity()  
  52.     {  
  53.         return shoppingCart;  
  54.     }      

【编辑推荐】

  1. JBoss Tools简介及下载地址
  2. JBoss Developer Studio简介
  3. Eclipse用户中使用Linux的数量赶超Windows
  4. 实战角度比较EJB2和EJB3的架构异同
  5. EJB3.0:是脱胎换骨,还是重蹈覆辙?

 

 


 
责任编辑:佚名 来源: BlogJava
相关推荐

2009-06-10 12:34:01

Session BeaEclipse+JBo

2009-06-24 15:59:04

消息驱动Bean

2009-06-10 11:09:40

配置文件SessionEclipse+JBo

2009-06-24 15:56:47

实体Bean连接策略

2009-06-24 15:53:08

Entity Bean多对多映射

2009-06-10 11:36:45

有状态的SessionEclipse+JBo

2009-06-24 15:51:47

Entity Bean一对多映射

2009-06-24 15:47:13

实体Bean

2009-06-24 15:49:54

Entity Bean一对一映射

2009-06-24 15:57:44

JPQL命名查询

2009-06-24 15:58:15

EntityManag

2009-06-24 16:00:00

2009-06-24 15:55:09

EclipseJBossJ2ee

2009-06-10 12:54:35

无状态的SessionEclipse+JBo

2009-06-26 15:36:27

Session BeaEJB

2009-06-15 16:06:25

JBoss IDE

2009-09-24 12:05:35

2009-06-17 08:51:26

Eclipse启动JB

2009-06-11 17:37:32

EJB注释

2009-06-17 09:01:20

JBoss访问EJB
点赞
收藏

51CTO技术栈公众号