博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
eclipse + JBoss 5 + EJB3开发指南(4):Session Bean中的注释方法
阅读量:5768 次
发布时间:2019-06-18

本文共 1579 字,大约阅读时间需要 5 分钟。

有时需要在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;
    }    
}
本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214443,如需转载请自行联系原作者
你可能感兴趣的文章
python命令行神器Click
查看>>
线上filebeat部署文档和使用方法
查看>>
数据库(一)
查看>>
python Class:面向对象高级编程 __str__ / __repr__
查看>>
简练软考知识点整理-项目配置审核
查看>>
hadoop发行版本之间的区别
查看>>
柏科数据与Veeam建立战略合作关系
查看>>
引领PCB行业变革捷配开启免费打样新时代
查看>>
SpringBoot基础篇之重名Bean的解决与多实例选择
查看>>
【更新】Essential Studio for ASP.NET MVC更新至2018 v4(一)
查看>>
OSPF 01
查看>>
什么是40G QSFP+ AOC有源光缆,有何应用特点
查看>>
好程序员分享干货 弹性分布式数据集RDD
查看>>
Hadoop
查看>>
php调用接口及编写接口
查看>>
Oracle11g_自动内存管理
查看>>
AIX 磁盘限额的配置
查看>>
往数据库插入一个数据
查看>>
Installing CentOS 6 or RedHat EL 6 on a partition larger than 2.2T
查看>>
【Python】基于fabric模块批量远程主机操作
查看>>