Eclipse+JBoss+EJB3的SessionBean注释方法

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  有时需要在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 shoppingCart = new ArrayList();  

    @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 getCommodity()  

    {  

        return shoppingCart;  

    }      

  编辑特别推荐:

  Hibernate一对多单向关系

  J2me中实现StringTokenizer的功能

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答