EJB3(6)

有状态会话bean的开发,首先创建远程接口:

@Remote
public   interface  HelloRemote  {

    String sayHi();

    
void init(String name);
    
    
void remove();
    
}

接着开发有状态会话bean:
@Stateful
public   class  HelloBean  implements  HelloRemote  {
    
private String name;
    
private Logger log = Logger.getLogger(this.getClass().getName());
    
    
public String sayHi() {
        
return "Hi " + name;
    }


    
public void init(String name) {
        
this.name = name;
    }

    
    @PostConstruct
    
public void postConstrut(){
        log.info(
"create " + this);
    }

    
    @PreDestroy
    
public void preDestory(){
        log.info(
"destory " + this);
    }

    
    @PostActivate
    
public void postActivate(){
        log.info(
"activate " + this);
    }

    
    @PrePassivate
    
public void prePassivate(){
        log.info(
"passivate " + this);
    }

    
    @Remove
    
public void remove(){
        log.info(
"remove " + this);
    }

}

@Stateful注释表明这是一个有状态会话bean,其他的注释是管理会话bean的生命周期。@PostConstruct注释表明方法将会在bean实例化并完成依赖注入后由容器调用此方法;@PreDestory注释表示方法会在容器删除bean实例前由容器调用;以上两个注释所有的EJB(包括MDB)都可以用。@PostActivate注释表示容器在激活bean后调用此方法;@PrePassivate注释表示容器在钝化bean前调用此方法;以上两个注释是有状态会话bean所特有。@Remove注释也是有状态会话bean所特有,也是用户唯一可以能控制的生命周期方法,一旦用户在客户端调用此方法,容器将删除bean实例。接着看客户端的测试代码:
<%
           InitialContext ctx 
=   new  InitialContext();
           HelloRemote helloBean 
=  (HelloRemote)ctx.lookup(HelloRemote. class .getName());
           helloBean.init(
" Tom " );
           out.println(helloBean.sayHi());
           helloBean.remove();
%>

很简单,只是多调用了一个remove方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值