无状态session bean生命周期
当bean实例不存在时,容器调用bean类的newInstance()方法,开始bean的生命周期接着,容器调用bean的setSessionContext()方法,进而调用ejbCreate()方法。此时,bean就创建完毕,其方法可供调用了当容器不需要该bean实例的时候,容器调用bean的ejbRemove()方法,删除该实例而有状态session bean的生命周期则复杂一些,因为涉及到钝化、激活和事务
有状态session bean生命周期
当客户调用create(args)时,容器调用newInstance()方法,剩下来的创建过程同无状态session bean。有状态session bean的方法执行分为事务与非事务两种情况ejb容器只有在ejb实例不存在的情况下才会创建实例,否则,容器会在实例池中查找可用实例并复用。由于ejb不适那种轻量的,可以大量创建并删除的对象,所以,每次新实例的创建都会占用很大的资源。实例池的概念,以及钝化、激活,都是针对ejb这种特点而设计的。所以,当你的应用不需要分布式,安全,持久化以及事务处理时,你要考虑是否采取ejb这种重量级的数据层抽象。取而代之,诸如hibernate等轻量级的数据持久层,或者是直接使用JDBC来操作javabean这样谈不上量级的DAO都是可以选择的。
本文地址:http://com.8s8s.com/it/it9855.htm