java

位置:IT落伍者 >> java >> 浏览文章

Eclipse+JBoss+EJB3的Session Bean注释方法


发布日期:2023年06月24日
 
Eclipse+JBoss+EJB3的Session Bean注释方法

有时需要在Session Bean中初始化和释放一些资源这些工作应该在SessionBean的@PostConstruct和@PreDestroy方法中进行其中用 @PostConstruct注释的方法在SessionBean的构造方法调用之后以后EJB容器在处理完一些其他工作后调用用 @PreDestroy注释的方法在SessionBean的对象实例被EJB容器销毁之前调用

除此之外当有状态的SessionBean存在一定时间未被调用时EJB容器会将该SessionBean对象钝化(Passivate)也就是保存在硬盘中当再次访问时EJB容器会激法该SessionBean在这两种情况下EJB容器会分别调用SessionBean的 @PrePassivate和@PostActivate方法可以在@PrePassivate方法中将sessionbean中的资源保存或释放如打开的数据库连接等在@PostActivate方法中可以恢复相应的资源如下面的代码所示

packageservice;

importjavautilArrayList;

importjavautilList;

importjavaxannotationPostConstruct;

importjavaxannotationPreDestroy;

importjavaxannotationResource;

importjavaxejbPostActivate;

importjavaxejbPrePassivate;

importjavaxejbSessionContext;

importjavaxejbStateful;

@Stateless

publicclassShoppingCartBeanimplementsShoppingCart

{

privateList<String>shoppingCart=newArrayList<String>();

@Resource

privateSessionContextsessionContext;

publicShoppingCartBean()

{

Systemoutprintln(constructor:+sessionContext);

}

@PrePassivate

publicvoidMyPassivate()

{

Systemoutprintln(passivate);

}

@PostConstruct

publicvoidinit()

{

Systemoutprintln(sessionContextgetInvokedBusinessInterface());

}

@PreDestroy

publicvoiddestory()

{

Systemoutprintln(destory);

}

@PostActivate

publicvoidstart()

{

Systemoutprintln(start);

}

@Override

publicvoidaddCommodity(Stringvalue)

{

shoppingCartadd(value);

}

@Override

publicList<String>getCommodity()

{

returnshoppingCart;

}

}

上一篇:java编程思想

下一篇:Java中调用本地代码