⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lifecyclebean.java

📁 jboss4 + Mysql +ejb3.0 EJB3 简单例子
💻 JAVA
字号:
/**
 * Copyright (c)上海烟草(集团)公司与上海康时信息系统有限公司。
 */
package com.myejb.imp;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.Init;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;
import javax.ejb.Remote;
import javax.ejb.Remove;
import javax.ejb.Stateful;

import org.jboss.annotation.ejb.RemoteBinding;

import com.myejb.LifeCycle;

/**
 * Session Bean 生命周期
 * @author xywang
 * @since 2009-2-12
 * @version 1.0
 */
@Stateful
@Remote({LifeCycle.class})
@RemoteBinding(jndiBinding="myejb/lifeCycleBean") // 自己定义jndi名字
public class LifeCycleBean implements LifeCycle{
    @Init   // 这个注释指定了有状态session bean初始化的方法。它区别于@PostConstruct注释在于:
            // 多个@Init方法可以同时存在于有状态session bean中,但每个实例只会有一个@Init方法会
            // 被调用。这取决于bean是如何创建的。@PostConstruct在@Init之后被调用
    public void initialize(){
        System.out.println("initialize()方法被调用");
    }
    @PostConstruct // 当对象完成实例化后,这个方法会被立即调用。适用于有状态和无状态会话Bean,每个bean只能定义一个@PostConstruct
    public void construct(){
        System.out.println("construct()方法被调用");
    }
    @PreDestroy   // 在容器从它的对象池中销毁一个无用的或者过期的bean实例之前调用。适用于有状态和无状态会话Bean 
    public void exit(){
        System.out.println("exit()方法被调用");
    }
    @PrePassivate  // 当一个有状态session bean实例空闲过长的时间,容器将会钝化(passivate)它,
                   // 并把它的状态保存在缓存当中。使用这个注释的方法会在容器钝化bean实例之前调用。只适用于有状态的会话bean
                   // 当钝化后,双经过一段时间该bean仍然没有被操作,容器将会把它从存储介质中删除,以后,任何针对该bean方法的调用容器都会抛出例外。
    public void serialize(){
        System.out.println("serialize()方法被调用");
    }
    @PostActivate // 当客户端再次使用已经被 钝化的有状态session bean时,
                  // 新的实例被创建,状态被恢复。会在bean的激活完成时调用。只适用于有状态的会话bean
    public void activate(){
        System.out.println("activate()方法被调用");
    }
    /* (非 Javadoc)
     * @see com.myejb.LifeCycle#Say()
     */
    public String Say(){
        try{
            Thread.sleep(1000*30);
        }catch(InterruptedException e){
            e.printStackTrace();
        }
        return "这是会话Bean生命周期的例子";
    }

    /* (非 Javadoc)
     * @see com.myejb.LifeCycle#stopSession()
     */
    @Remove  // 容器会在该方法被执行完毕后,把bean实例从对象池中移走.
    public void stopSession(){
        System.out.println("stopSession()方法被调用 ");
        // 调用该方法以通知容器移除该Bean实例,终止会话。方法体可以是空的.
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -