spring,ioc模式与ejb3调用

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

我们先看看在servlet中怎么调用ejb3:

public class HelloServlet extends GenericServlet {

private Hello _hello;

public void setHello(Hello hello)

{

_hello = hello;

}

public void service(HttpServletRequest req, HttpServletResponse res)

throws IOException, ServletException

{

PrintWriter out = res.getWriter();

out.println(_hello.hello());

}

}

然后我们看看xml中的配置方法:

<web-app>

<servlet servlet-name="hello" servlet-class="com.hongsoft.HelloServlet">

<init hello="_ejb.HelloBean.HelloBean__EJB"/>

</servlet>

</web-app>

我们看到了什么?配置文件中把HelloBean传给了setHello作为参数,当然,HelloBean实

现了Hello接口;service中,直接调用_hello.hello(),实际调用的是HelloBean的

hello()方法实现.

呵呵,通过set方法来将需要的HelloBean传递给servlet,如果我们的需求发生了改变,

新加了Hello2Bean实现,我们只需要在配置文件中进行修改就可以了,这,就是ioc模式

中的type2.

Spring Framework采用的也是type2的ioc模式,比如spring配置文件如下:

<beans>

<bean id=“studentType1" class=“com.hongsoft.test.StudentType1"/>

<bean id=“teacher“ class=“com.hongsoft.test.Teacher">

<property name=“student">

<ref bean=“studentType1"/>

</property>

</bean>

</beans>

那么我们在代码中就可以这么使用:

public class Teacher {

private Student student;

public void setStudent(Student student) {

this.student = student;

}

//写论文方法

public void writePaper() {

student.writePaper();

}

}

这样,如果要写IOC的论文,就找一个精通IOC的学生写;如果要写BPEL的论文,就找一个

精通BPEL的学生写,要修改的地方,也就是配置文件而已.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航