java 拦截器 生命周期_JavaEE(9) - Session EJB的生命周期、事务及拦截器

1. SessionBean的生命周期

无状态Session Bean: 不存在状态-->待命状态-->被销毁状态

不存在状态-->待命状态:

1)通过构造器创建EJB实例

2)执行依赖注入

3)执行@PostConstruct回调方法

待命状态-->被销毁状态

1)执行@PreDestroy回调方法

有状态Session Bean: 不存在状态-->待命状态(去活状态-->被销毁状态)-->被销毁状态

不存在状态-->待命状态:

1)通过构造器创建EJB实例

2)执行依赖注入

3)执行@PostConstruct回调方法

待命状态-->去活状态

1)执行@PrePassive回调方法

去活状态-->待命状态

1)执行@PostActivate回调方法

待命状态-->被销毁状态

1)客户端调用@Remove方法

2)执行@PreDestroy回调方法

#1. 开发EJB(Net Beans创建EJB Module, 项目名称:Lifecycle)

ShopService.java

packageorg.crazyit.service;import javax.ejb.*;import java.util.*;

@Remotepublic interfaceShopService {voidaddItem(String item);

MapshowDetail();voidremove();

}

ShopServiceBean.java

packageorg.crazyit.service;import java.util.*;importjavax.annotation.PostConstruct;importjavax.annotation.PreDestroy;import javax.ejb.*;

@Stateful(mappedName= "ShopService")public class ShopServiceBean implementsShopService {private Map buyInfo = new HashMap();public voidaddItem(String item) {//该物品已经购买过

if(buyInfo.containsKey(item)) {

buyInfo.put(item, buyInfo.get(item)+ 1);

}else{

buyInfo.put(item,1);

}

}public MapshowDetail() {returnbuyInfo;

}

@Removepublic voidremove() {

System.out.println("执行@Remove修饰的方法!");

}//下面定义了5个简单的生命周期方法

@Initpublic voidinit() {

System.out.println("执行@Init修饰的方法!");

}

@PostConstructpublic voidpostConstruct() {

System.out.println("执行@PostConstruct修饰的方法!");

}

@PrePassiva

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值