Ejb—开发模型与实例

1.    开发模型

  这里用最简洁的一个Ejb项目模型来简介Ejb的开发过程与调用原理。粗略的开发过程如下:

  Ø  首先,新建Ejb项目,并部署到JBoss服务器(作为服务端)。

  Ø  然后,新建普通Java项目作为客户端。(客户端的概念是相对的,它可以是任何类型的项目,包括可以是另一个Ejb项目)

  Ø  最后,将Ejb项目中的接口打包为jar包,并添加到客户端,客户端即可以通过InitialContext来查找到Ejb,并调用Ejb的方法。

如下图所示:


  


2.    实例源码如下

  服务端

  新建Ejb项目,添加一个接口,与一个接口的实现:

  接口:

public interface FirstEjb {
	public String saySomething(String name); 
}

  实现:

@Stateless
@Remote
public class FirstEjbBean implements FirstEjb {
	public String saySomething(String name) {
		return "你好," + name;
	}
}

  接口的实现上有两个注解,表示这个SessionBean是一个无状态的,远程Bean。至于有状态、无状态SessionBean或是远程、本地SessionBean的概念将在后面进行介绍。

  客户端

  开发客户端的步骤如下:

  1、首先创建普通java项目

  2、将客户端的依赖包添加到项目的类路径中【* JBOSS_HOME/client/*.jar】

  3、将上面服务端的接口打成jar包然后添加到客户端(为了操作方便不打jar包,可以直接将EJB项目添加到客户端项目中(目的是为了能够使用EJB的接口))

  4、客户端在类路径(src)下添加jndi.properties文件(源码如下),这是为了客户端的应用程序能够使用JNDI来查找EJB对象

  5、客户端即可以通过InitialContext接口来查找EJB,并调用EJB的方法!

     *EJB的JNDI命名是:EJB实现类的名称/访问方式

  源码:

  jndi.properties:

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost

  测试类(FirstEjbClient):

public class FirstEjbClient {
	public static void main(String args[]) throws Exception {
		InitialContext context = new InitialContext();
		FirstEjb firstEjb = (FirstEjb) context.lookup("FirstEjbBean/remote");
		String s = firstEjb.saySomething("kobe");
		System.out.println(s);
	}
}

  可以看到客户端通过InitialContext()加载配置文件的(jndi.properties),然后根据配置文件即可通过JNDI查找到Ejb,并调用Ejb的方法。

3.    总结

  EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。SessionBean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个SessionBean来为客户端服务。SessionBean可以直接访问数据库,但更多时候,它会通过EntityBean实现数据访问。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值