但说到EJB体系.我又不得不说一下J2EE的体系了. 自从SUN公司推出JAVA以来.就力图无所不包,所以JAVA从推出到现在,按理来说分为J2SE,J2ME和J2EE,
J2SE主要用于桌边应用程序的开发.J2ME主要用于嵌入式系统开发,如手机和PDA编程.(什么是PDA编程?这个嘛,我也不是很清楚,好像是什么嵌入式开发.开发工具好像用Visio Stiudio可以). J2EE是JAVA2的企业版.主要用于分布式网络程序的开发.如电子商务网站.J2SE开发桌面应用软件比起VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。所以现在应用最广泛又最好学的就是J2EE了。J2EE又包括,JSP,Servlet,JAVABean,ejb,Hibernate,和JDBC,javaMail. 所以说学好J2EE并不是很容易的事.有人说3个月就可以学好JAVA.那可是无稽之谈了
J2EE 应用程序一般分为客户层、Web 层、业务层和企业信息层
J2EE 应用程序的组件有:EJB组件、WEB组件和客户层组件。WEB组件包含Servlet组件和JSP组件。客户层组件包含应用程序客户端组件和Applet组件
J2EE 容器分为EJB 容器、Web 容器、应用程序客户端容器和Applet 容器开发 J2EE 应用程序的不同阶段是:创建组件、组件封装、应用程序汇编以及应用程序部署
J2EE 平台定义了在应用程序开发和部署生命周期中多个不同的角色,如应用程序组件提供者、应用程序汇编者和部署者
J2EE 规范指定了许多 API,在编程中我们可能会使用到这些API .
言归正传.EJB组件包括企业级开发Bean.而企业级开发Bean又包括无状态会话bean(SLSB)和有状态会话Bean(SFSB).还有消息驱动Bean. slsb不保存客户端状态.所以成为无状态,再slsb中,. 消息调用之间没有存储信息.因此方法之间没有保留任何会话状态. sfsb则不同了.sfsb是向业务进程提供服务的bean,它保存客户端调用. slsb生命周期有两个状态.从开始创建到结束. 但sfsb则有三种状态. 其中它多了个挂起状态. 何谓挂起. 例如.我有三个客户端调用我服务器的同一个查询方法. 我现在这个方法只允许两个客户端同时调用. 现在有服务器判断哪一个客户端就久没有对服务器发出请求. 则将该客户端进行挂起操作. 也就是进行序列化操作. 当其他用户操作完. 在对该用户进行反序列化.
slsb的编写步骤:
第一步: 先定义一个包含该会话Bean所有业务方法的接口.
第二步:写一个类实现该接口的所有方法. 并且再类的前面加上两个注解. 如果是SLSB的话用@Stateless.如果是SFSB的话用@StateFul. 第二个注解是@Remote.指名无状态会话Bean的Remote接口.
第三步:编写客户端程序.
//这是编写的接口





//实现接口的类
@Remote ({HelloWorld.class})
public class HelloWorldBean implements HelloWorld {
public String SayHello(String name) {
return name +"说:你好!世界,这是我的第一个EJB3 哦.";
}
}
//编写测试类
如果是有状态会话Bean则再实现接口的类前的注解@Stateless 改成@Stateful则行. 今天就到这里了. 明天小龙继续讲课.