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方法中可以恢复相应的资源。如下面的代码所示:

package service;  
 
import java.util.ArrayList;  
import java.util.List;  
import javax.annotation.PostConstruct;  
import javax.annotation.PreDestroy;  
import javax.annotation.Resource;  
import javax.ejb.PostActivate;  
import javax.ejb.PrePassivate;  
import javax.ejb.SessionContext;  
import javax.ejb.Stateful;  
 
@Stateless  
public class ShoppingCartBean implements ShoppingCart  
{  
    private List<String> shoppingCart = new ArrayList<String>();  
    @Resource  
    private SessionContext sessionContext;  
      
    public ShoppingCartBean()  
    {  
        System.out.println("constructor:" + sessionContext);  
    }  
    @PrePassivate  
    public void MyPassivate()  
    {  
        System.out.println("passivate");  
    }  
    @PostConstruct  
    public void init()  
    {  
        System.out.println(sessionContext.getInvokedBusinessInterface());
    }  
    @PreDestroy  
    public void destory()  
    {  
        System.out.println("destory");  
    }  
    @PostActivate  
    public void start()  
    {  
        System.out.println("start");  
    }  
    @Override  
    public void addCommodity(String value)  
    {  
          
        shoppingCart.add(value);  
    }  
    @Override  
    public List<String> getCommodity()  
    {  
        return shoppingCart;  
    }      

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.

【编辑推荐】

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

 

 

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

2009-06-24 15:59:04

消息驱动Bean

2009-06-10 12:34:01

Session BeaEclipse+JBo

2009-06-10 11:09:40

配置文件SessionEclipse+JBo

2009-06-24 15:56:47

实体Bean连接策略

2009-06-10 11:36:45

有状态的SessionEclipse+JBo

2009-06-24 15:53:08

Entity Bean多对多映射

2009-06-24 15:47:13

实体Bean

2009-06-24 15:51:47

Entity Bean一对多映射

2009-06-24 15:57:44

JPQL命名查询

2009-06-24 15:49:54

Entity Bean一对一映射

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-17 09:01:20

JBoss访问EJB

2009-06-11 17:37:32

EJB注释
点赞
收藏

51CTO技术栈公众号