通过注解方式注入并使用其他EJB或者服务(八).doc

 

 

 

在一个项目中EJB的数量可以有很多,EJB之间也会相互调用,那我们如何在一个EJB内部调用其他的EJB呢??

 

在一个EJB的项目中,创建另一个接口:

  

public interface Other {

  public String sayMe();

}

 

然后创建该接口的实现类:

@Stateless

public class OtherBean implements Other{

 

    public String sayMe() {

       return "other";

    }

 

}

我们要在HelloWordBean.java中调用OtherBeansayMe()方法。那么如何在HelloWordBean中获得OtherBean??

如果直接在helloWordBean中直接new OtherBean()的话,是错误的。因为它不是EJB对象额。但我们可以通过另外另外两种方式获得。

1.    JNDI

HelloWordBeansayHello(String name)方法中加入如下代码:

try{

    InitialContext ctx = new InitialCOntext();

    Other other = (Other) ctx.lookup(“OtherBean/local”);

 return   other.sayMe();

}catch(NamingException e){

}

然后部署EJB,运行客户端,可以看到其运行结果正常。

2.    依赖注入(ejb注解)

HelloWorldBean中加入如下代码:

   @EJB(beanName=”OtherBean”) Other other;

注意该注解只能注解EJB。如果要注入其他的资源可采用

 @Resource TimeService timeService;

@Resource(mappedName=”java:xxx”)DataSource dataSource;(mappedName:用来指定datasource的名称)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值