EJB Local包括Remote

时间:2013-12-10 12:41:12

标签: java ejb ejb-3.0 ejb-3.1 session-bean

假设我们正在使用EJB3,而我们的会话bean使用/实现本地接口L和远程接口R.

@Local
public interface L {
 abstract void localMethod();
}

@Remote
public interface R {
  abstract void remoteMethod();
}

我的问题1

本地客户端是否也可以使用remoteMethod?

我的问题2

使用远程接口扩展本地接口是一种好习惯吗?

@Local
public interface L extends R {
...
}

1 个答案:

答案 0 :(得分:2)

  1. 目前尚不清楚您的意思是“本地客户”。如果你有一个客户端在同一个进程中,那么它可以同时使用L和R,但你必须单独查找/注入它们:你不能查找L,强制转换为R,并调用remoteMethod。

  2. 我不会称之为“好”的做法。远程接口上的方法的参数和返回值将是按值传递,但本地接口上的方法的参数和返回值将是按引用传递的。也就是说,如果您的EJB及其客户端意识到这一点,那么尽可能使用本地接口可以获得更好的性能。