eclipse + JBoss 5 + EJB3开发指南(4):Session Bean中的注释方法

简介: 本文为原创,如需转载,请注明作者和出处,谢谢!     有时需要在Session Bean中初始化和释放一些资源。这些工作应该在SessionBean的@PostConstruct和@PreDestroy方法中进行。

本文为原创,如需转载,请注明作者和出处,谢谢!

    有时需要在Session Bean中初始化和释放一些资源。这些工作应该在SessionBean的@PostConstruct和@PreDestroy方法中进行。其中用 @PostConstruct注释的方法在SessionBean的构造方法调用之后以后EJB容器在处理完一些其他工作后调用。用 @PreDestroy注释的方法在SessionBean的对象实例被EJB容器销毁之前调用。
    除此之外,当有状态的SessionBean存在一定时间未被调用时,EJB容器会将该SessionBean对象钝化(Passivate),也就是保 存在硬盘中。当再次访问时,EJB容器会激法该SessionBean。在这两种情况下,EJB容器会分别调用SessionBean的 @PrePassivate和@PostActivate方法。可以在@PrePassivate方法中将sessionbean中的资源保存或释放,如 打开的数据库连接等。在@PostActivate方法中可以恢复相应的资源。如下面的代码所示:

Code:
  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.     }      

目录
相关文章
|
C语言 Android开发 Windows
解决windows下eclipse创建project时没有include导致出现“unresolved inclusion: &lt;stdio.h&gt;”错误的方法
解决windows下eclipse创建project时没有include导致出现“unresolved inclusion: &lt;stdio.h&gt;”错误的方法
解决windows下eclipse创建project时没有include导致出现“unresolved inclusion: &lt;stdio.h&gt;”错误的方法
|
算法 Java 数据安全/隐私保护
eclipse导入BASE64Encoder类的方法
eclipse导入BASE64Encoder类的方法
231 1
|
IDE Java 程序员
Eclipse 安装插件报错:An error occurred while collecting items to be installed session context was...解决方法汇总
Eclipse 安装插件报错:An error occurred while collecting items to be installed session context was...解决方法汇总
1600 0
Eclipse 安装插件报错:An error occurred while collecting items to be installed session context was...解决方法汇总
蓝易云 - MyEclipse6.5安装m2eclipse方法
注意:由于MyEclipse 6.5是一个较旧的版本,可能无法支持最新版本的m2eclipse插件,因此在下载时,请尽量选择与MyEclipse 6.5兼容的m2eclipse版本。
181 0
|
Java Android开发
eclipse去掉try-catch,构造方法,get,set方法等里面自动生成的注释
eclipse去掉try-catch,构造方法,get,set方法等里面自动生成的注释
278 0
|
Java 应用服务中间件 Android开发
eclipse jee配置jetty的两种方法【亲测可用】
eclipse jee配置jetty的两种方法【亲测可用】
1640 0
eclipse jee配置jetty的两种方法【亲测可用】
|
XML Java Go
eclipse开发工具性能优化设置方法
eclipse开发工具性能优化设置方法
961 0
eclipse开发工具性能优化设置方法
|
Java Linux Android开发
【工具使用】eclipse来回切换项目的JDK版本的方法(最全的)
我们用eclipse在做项目的时候会切换jdk版本,本地运行的项目所使用的jdk版本比Linux服务器高(低),需要调低(高)JDK版本。那么如何通过eclipse配置来切换呢?
2107 0
【工具使用】eclipse来回切换项目的JDK版本的方法(最全的)
|
Android开发
错误: 程序包org.eclipse.swt.graphics不存在/swt.jar下载方法
错误: 程序包org.eclipse.swt.graphics不存在/swt.jar下载方法
201 0
|
Java Android开发
Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法