Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
SpringFramework(10)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

7EJB

1SpringEJB

l         Spring是轻量级容器,在许多场合可以用来替代EJB

l         Spring使得访问和实现EJB更容易

2EJB访问

l         使用EJB通常有:

Ø         服务定位器:关心JNDI、初始化contextEJB Home查找

Ø         业务代表:减少耦合,隐藏实现细节

l         使用Spring不需要这些设计模式

3)访问本地SLSB

l         使用本地无状态Session Bean

<bean id="myComponent"
class="...ejb.access.LocalStatelessSessionProxyFactoryBean">
<property name="jndiName">
<value>myComponent</value>
</property>
<property name="businessInterface">
<value>com.mycom.MyComponent</value>
</property>
</bean>

创建使用服务定位器访问EJB的代理(业务代表)

l         你可以交换Bean的实现,而不需要改变客户代码:客户程序使用业务接口,而不是EJB的特定接口

4)访问远程SLSB

l         使用远程无状态Session Bean

<bean id="myComponent"
class="...SimpleRemoteStatelessSessionProxyFactoryBean">
<property name="jndiEnvironment">
<ref bean="myEnvironment"/>
</property>
<property name="jndiName">
<value>myComponent</value>
</property>
<property name="businessInterface">
<value>com.mycom.MyComponent</value>
</property>
</bean>

5EJB实现

l         AbstractEnterpriseBean

Ø         加载BeanFactoryEJB环境变量ejb/BeanFactoryPath指定XML BeanFactory文件在classpath中的位置;缺省的BeanFactoryXmlApplicationContext

l         应用程序只是使用EJB作为前端

Ø         业务逻辑推迟到了BeanFactoryBean

6)实现SLSB

l         无状态Session Bean

l         扩展AbstractStatelessSessionBean

Ø         保存Session context

Ø         空实现ejbRemove

Ø         ejbCreate()方法

Ø         ejbActivate()ejbPassivate()中抛异常

l         子类必须实现onEjbCreate()

l         例子:

class MySlsb extends AbstractStatelessSessionBean {
protected void onEjbCreate() throws CreateException {
...
}
public void businessMethod() {
BeanFactory bf = getBeanFactory();
MyBusinessBean mbb = bf.getBean("myBusinessBean");
...
}
}

7)实现SFSB

l         保持状态Session Bean

l         扩展AbstractStatefulSessionBean

Ø         保存Session context

Ø         空实现ejbRemove

Ø         ejbCreate()方法

l         子类必须实现ejbCreate()ejbActivate()ejbPassivate()

l         例子:

class MySfsb extends AbstractStatefulSessionBean {
public void ejbCreate() throws CreateException {
loadBeanFactory();
...
}
public void ejbActivate() {
...
}
public void ejbPassivate() {
...
}
public void businessMethod() {
BeanFactory bf = getBeanFactory();
MyBusinessBean mbb = bf.getBean("myBusinessBean");
...
}
}

8)实现MDB

l         例子:

class MyMdb extends AbstractJmsMessageDrivenBean {
protected void onEjbCreate() throws CreateException {
...
}
public void onMessage(Message message) {
BeanFactory bf = getBeanFactory();
MyBusinessBean mbb = bf.getBean("myBusinessBean");
...
}
}



相关文章

相关软件