首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >EJB的资料辅导(5)

EJB的资料辅导(5)

作者头像
紫风
发布2025-10-14 17:19:19
发布2025-10-14 17:19:19
1010
举报

EJB扩展组件

EJB的依赖注入,都是依赖于JNDI的。

在EJB组建中调用其他的EJB组件

可以借助于JNDI,查找到其他EJB组件,也可以借助于业务接口,调用EJB实例中的业务方法,也可以同国直接引用其他的需要的EJB组件的业务接口,但是需要使用标注。

例: @EJB TaxRate tr;

标注

@Statless @Statful @MessageDriverBean name=" ",mappedName=" " description=" " name属性是标识EJB的名字(可以通过JNDI来查找)。默认是EJB的名字。 mappedName属性也是标识EJB的名字的是容器相关的,所以不要重置,降低可移植性。 description属性是EJB的描述内容。 以上3个属性是3个标签共有的属性。

@Remote @Local 这两个标注是标注商业接口的,分别是标注远程的和本地的商业接口的,如果不写那就默认为本地的。

用于有状态SessionBean的标注

@Remove(retainIfExctption="true|false") 是否在Bean的实例抛出异常之后是否保留着个实例,@Remove标注能够应用的有状态SessionBean中的某个业务方法上。当调用到应用了这一注释的方法时,EJB容器会将这个Bean的实例销毁或是保留, retainIfExctption属性置为true,则会在调用Bean的业务方法中出现异常则会保留这个Bean的实例,置为false则会销毁该实例。

EJB的依赖注入

@Resource标注能够引用到EJB组件环境中的资源。 @Resource(name="" ,type="") 注意在使用资源引用的时候,也需要在厂商的部署描述文件中对资源进行配置,也就是配置资源的类型和名字,以及JNDIname

@EJB(name="",beanInterface="",beanName="",description="") name属性指定引用EJB组件的名字 beanInterface属性用于指定被引用的EJB组件的接口类型 beanName属性如果在要引入的EJB组件在相同模块中也就是在同一个jar文件中,就需要自定beanName了

EJB拦截器

EJB拦截器,使用来截取客户的调用方法的,就像是过滤器,他只适用于SessionBean MDB。

@Interceptors和@AroundInvoke 使用@AroundInvoke标注注释方法,并且方法的返回值为Object 例 public class Test{  @AroundInvoke         public Object test(InvocationContext inv){                System.out.println("Intercepted call via external class to:"+                 inv.getMethod().getName());//打印客户调用的方法的名字                 Object[] params=inv.getParameters();//获得客户调用的方法的参数表                 for(int i=0;i<param.length;i++){                     System.out.println("\tparam: "+params[i]);//打印所有参数                 }         } }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2008-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档