java – 具有相同接口的两个EJB.这是一个好习惯吗?
发布时间:2020-12-15 08:42:31 所属栏目:Java 来源:网络整理
导读:我的用例要求我有一个类层次结构,如下所示 public interface ServiceA{ public void doSomething();}public abstract class AbstractClass implements ServiceA{ @Override public void doSomething(){ getMetaValue(); .. do common Things applicable to a
我的用例要求我有一个类层次结构,如下所示
public interface ServiceA{ public void doSomething();} public abstract class AbstractClass implements ServiceA{ @Override public void doSomething(){ getMetaValue(); .. do common Things applicable to all EJBS... } public abstract MeataValue getMetaValue(); } @Stateless(mappedName="EJBBeanImlJ") public EJBBeanImplJ extends AbstractClass{ public MetaValue getMetaValue(){ return new MetaValue(x,y); } } @Stateless(mappedName="EJBBeanImplK") public EJBBeanImplK extends AbstractClass{ public MetaValue getMetaValue(){ return new MetaValue(a,b); } } 问题: >为两个EJB实现提供相同的接口,这是一个很好的EJB实践吗? 注意:我的appserver是Weblogic 谢谢 解决方法
EJB只是一种特殊的类.它很特殊,因为它的生命周期由容器管理.它只是一个类,因为它是用java编写的,可以实现它想要的任何接口和任何业务逻辑.
所以,我认为拥有相同接口的多个实现是一个好习惯.它允许将特定服务的实现与其使用分开.例如,您可以创建可以发送一些内容和2个实现的接口发件人:EmailSender和SmsSender.两者都实现相同的接口,都是EJB. 唯一的问题是,在这种情况下,您不能仅通过其接口绑定对sender的引用,但必须像您一样使用mappedName. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |