当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

Spring迟误加载EJB代理[Java编程]

赞助商链接



  本文“Spring迟误加载EJB代理[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在Spring中供应了两个代理工厂Bean来代理EJB的拜候:

- LocalStatelessSessionProxyFactoryBean - 用来拜候本地EJB(EJB和它的客户端在同一个容器中).

- SimpleRemoteStatelessSessionProxyFactoryBean - 用来拜候远程EJB(EJB和它的客户端在独立的容器中).

比方:

<bean id="businessComponent" class="org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean" lazy-init=”true”>
<property name="jndiName">
<value>ejb/location.business.comp</value>
</property>
<property name="businessInterface">
<value>com.test.LocationBusinessComponent</value>
</property>
</bean>

SimpleRemoteStatelessSessionProxyFactoryBean是个代理工厂Bean类,该Bean通过jndiName属性便可以查找到这个EJB的home接口.在容器启动的时 候,SimpleRemoteStatelessSessionProxyFactoryBean通过该JNDI来查找EJB 的远程Home接口,接着它会把这个接口缓存起来,这样每次在businessComponent上的办法被调用时,代理就会调用远程接口上的create()办法来获得这个EJB的引用,而不需求再举行一样的JNDI查找了.businessInterface属性平等与在其他远程服务代理工厂Bean中利用的serviceInterface,它表示这个EJB服务依靠在LocationBusinessComponent接口上.

关于这个声明,一件需求注意的事情就是<Bean>元素的lazy-init属性.在《spring in action》中提到:当任何一个EJB代理工厂Bean在ApplicationContext中利用时,这一 点是相当重要的.这是因为在Spring配置文件被装载进来的时刻,ApplicationContext气势的Bean工厂预先实例化了单实例的 Bean.这普通是一件功德,但它大概会招致EJB代理工厂Bean在EJB被绑定到名字服务之前,试图查找EJB的home接口.把lazy-init 设置为true,可确保这个EJB在装载时不会试图查找home接口,直到它初次被利用为止,这将会留有充足的时间来把EJB绑定到名称服务上.

经过尝试,lazy-init属性并不见效,我的代码场景是通过一个init的servlet去载入一个引用了businessComponent的bean,设置了lazy-init属性之后,spring容器仍然会在载入时初始化businessComponent.通过查阅spring的api后发现,最好的办理办法是设置lookupHomeOnStartup属性,将该属性为false,spring将会在第一次拜候ejb时才去获得home接口.测试之后,该配置起作用了,更改后的配置以下:

<bean id="businessComponent" class="org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean">
<property name="jndiName">
<value>ejb/location.business.comp</value>
</property>
<property name="businessInterface">
<value> com.test.LocationBusinessComponent</value>
</property>
<property name="lookupHomeOnStartup">
<value>false</value>
</property>
</bean>

更具体的信息可参考关于SimpleRemoteStatelessSessionProxyFactoryBean 的api:http://static.springsource.org/spring/docs/1.2.x/api/org/springframework/ejb/access/SimpleRemoteStatelessSessionProxyFactoryBean.html


  以上是“Spring迟误加载EJB代理[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 在Ubuntu管理iPhone/iPod SpringBoard图标
  • Visual C++ sprintf()函数用法
  • 发扬EJB、Spring思惟将组件化举行到底
  • spring在MVC层办理JPA的缓迟加载问题
  • 用spring简单实现发送邮件
  • 用Spring framework实现按时器功效
  • 关于Struts和Spring两种MVC框架的比较
  • Spring自动装配的学习
  • Spring事件配置的五种办法
  • Spring编程入门十大问题解答
  • Hibernate+Spring+Struts扩大Struts
  • J2EE新手入门之"Spring"名词注释
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .