当前位置: 首页 > 面试题库 >

SessionContext.getBusinessObject()的返回值与Bean中使用的“ this”关键字有何不同?

吴鸿禧
2023-03-14
问题内容

以下文档中描述了SessionContext.getBusinessObject(),

获取可用于通过给定业务接口调用当前Bean的对象。

参数:businessInterface-此会话bean的本地业务接口或远程业务接口之一。

返回:与给定业务接口相对应的业务对象。

我不能在Java中使用’this’关键字来实现相同目的吗?这些有什么不同?


问题答案:

这里的动机是大多数EJB实现都可以在代理上工作。将其视为老式AOP并不会太遥远。业务接口通常由EJB容器通过一个简单的java.lang.reflect.Proxy实现,并且该对象被传递给系统中通过@EJB或JNDI查找ejb的每个人。

代理连接到容器,并且对它的所有调用都直接转到容器,容器将执行安全检查,启动/停止/挂起事务,调用拦截器等,然后最终将调用委托给Bean实例-
并且当然会由于抛出的异常而进行必要的清理-然后最终将返回值通过代理传递给调用者。

直接调用this.foo()或将“ this”传递给调用方,以便他们也可以直接调用,将​​跳过所有操作,容器将被有效地裁剪掉。“
getBusinessObject(Class)”方法允许Bean实例从本质上获取其自身的代理,以便它可以调用自己的方法并利用与之关联的容器管理服务-
拦截器,事务管理,安全实施等。



 类似资料:
  • 本文向大家介绍JavaScript中的this关键字使用详解,包括了JavaScript中的this关键字使用详解的使用技巧和注意事项,需要的朋友参考一下  和其它许多面向对象的语言一样,JavaScript 中也有 this 关键字,this 在函数中用来指向调用此方法的对象。实际编程中要判断 this 到底指向谁,一般可遵循以下原则:     如果该函数被 Function.call 或者 F

  • 问题内容: 在Java中使用关键字的最佳做法是什么?例如,我有以下课程: 没关系,但是Java足够聪明,如果我将构造函数中的语句更改为 那么为什么要使用this关键字呢?(我意识到在某些情况下,完全有必要使用它,我只是在问这种情况)。实际上,出于可读性的考虑,我倾向于仅使用关键字,但是常见的做法是什么?例如,在整个商店中使用它会使我的代码看起来有些混乱 显然,代码很少,但是它说明了我的示例。在这些

  • 问题内容: 当ai遇到关键字时,我正在研究Java中的方法重写。在Internet和其他来源上进行了大量搜索之后,我得出结论,当实例变量的名称与构造函数的参数相同时,将使用关键字。我是对还是错? 问题答案: 是实例中当前实例的别名或名称。它对于消除实例变量与局部变量(包括参数)的区别很有用,但它本身可以用来简单地引用成员变量和方法,调用其他构造函数重载或简单地引用 实例 。适用用途的一些示例(并非

  • 问题内容: 我试图了解java关键字的this实际作用。我一直在阅读Sun的文档,但对于this实际操作仍然不甚了解。 java 关键字 问题答案: 关键字是对当前对象的引用。 另一种思考方式是关键字就像你用来引用自己的人称代词。对于相同的概念,其他语言使用不同的词。VB使用Me和Python约定(因为Python不使用关键字,只是每个方法的隐式参数)将被使用。 如果要引用本质上属于你的对象,你将

  • 涵义 this关键字是一个非常重要的语法点。毫不夸张地说,不理解它的含义,大部分开发任务都无法完成。 前一章已经提到,this可以用在构造函数之中,表示实例对象。除此之外,this还可以用在别的场合。但不管是什么场合,this都有一个共同点:它总是返回一个对象。 简单说,this就是属性或方法“当前”所在的对象。 this.property 上面代码中,this就代表property属性当前所在

  • 问题内容: 我正在使用iBatis / Java和Postgres 8.3。当我在ibatis中插入时,我需要返回ID。 我使用下表描述我的问题:通过运行create语句自动生成 Sequence 。 目前,我使用以下sql映射: 看来这是检索新插入的id的ibatis方法。Ibatis首先运行INSERT语句,然后向序列询问最后一个ID。 我怀疑这是否可以与许多并发插入一起使用。 我想在ibat