商务软件的核心部分是它的业务逻辑。业务逻辑抽象了整个商务过程的流程,并使用计算机语言将他们实现。J2EE 对于这个问题的处理方法是将业务逻辑从客户端软件中抽取出来,封装在一个组件中。这个组件运行在一个独立的服务器上,客户端软件通过网络调用组件提供的服务以实现业务逻辑,而客户端软件的功能单纯到只负责发送调用请求和显示处理结果。在J2EE 中,这个运行在一个独立的服务器上,并封装了业务逻辑的组件就是EJB(Enterprise JavaBean)组件。
其实说的简单一点就是我的这个项目太大了,一台机器来实现所有的功能太困难,那么我就让多个人来帮我实现。
既然说他是javaBean,那么我们就看看这几个Bean。
即EJB能够为同一个客户端在多次请求之间保持状态信息比如:基于某种原因(可能是因为系统需要支持多种不同类型的客户端)EJB需要识别不同的客户端,分别为不同的客户端保持与其对应的状态信息,例如购物。
无状态的会话bean不是说EJB不能存在状态,而是说EJB容器不会对EJB的状态做管理容器会使用实例池的方式,甚至单利的方式来实现无状态的Session Bean因为EJB容器不会对Stateless Session Bean的状态进行管理,所以他的性能要比Stateful Session Bean的好,例如咱们的三大框架spring就是用单例实现的,他不再对状态惊醒管理。
MDB(Message Driver Bean)
如果要不断监听一个队列中的消息,通常我们需要写一个监听程序,这需要一定的开发量,而且如果要实现高并发处理,也不易扩展,而MDB则自动实现了该功能,简单点讲,MDB的应用部署到jboss后,能自动监听目标队列,一旦有消息接收,会触发onMessage事件,开发人员可以在该事件处理中扩展自己的业务逻辑.
定义客户端访问接口
远程客户端
他可以在不同的机器或者jvm金成中,可以是web组建,应用客户端,其他的企业Bean,为了创建远程的EJB,必须创建一个 @Remote
本地客户端:为了创建远程的EJB,必须创建一个@local
WebService客户端:只能访问无状态的会话Bean
EJB项目创建
接下来我们创建一个简单的EJB项目,并且去实现一个Demo
MyEclipse-->New-->EJB Project,如下图
因为我们是一个简单的demo,这里先不需要对数据进行持久化。所以注意下边的红框中的选择。新建好项目后如下图:
然后我们新建一个package,并新建一个接口FirstEjb和一个实现类FirstEjbBean。代码如下:
public interface FirstEjb{
public String saySomething(String name);
}
@Stateless
@Remote(FirstEjb.class)
public class FirstEjbBean implements FirstEjb {
public String saySomething(String name) {
return "您好" + name;
}
}
这样一个简单的EJB项目就算是建好了。先简单的解释一下,@Stateless表示这是一个无状态的会话Bean,@Remote表示他是一个远程调用。至于里边的FirstEjb.class可以不写,不写默认是FirstEjb。
启动EJB项目。
在Jboss的服务中添加依赖项。也就是我们的ejb_demo01,然后启动该服务,当我们看到如下界面的时候,就代表启动成功。
是不是非常的简单,具体客户端怎么调用,和我们说的一些javaBean在EJB中有什么意义,我们下篇博客再讨论。