假设我们正在使用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 {
...
}
答案 0 :(得分:2)
目前尚不清楚您的意思是“本地客户”。如果你有一个客户端在同一个进程中,那么它可以同时使用L和R,但你必须单独查找/注入它们:你不能查找L,强制转换为R,并调用remoteMethod。
我不会称之为“好”的做法。远程接口上的方法的参数和返回值将是按值传递,但本地接口上的方法的参数和返回值将是按引用传递的。也就是说,如果您的EJB及其客户端意识到这一点,那么尽可能使用本地接口可以获得更好的性能。