`
Lincoln
  • 浏览: 81317 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring2.0JINDI集成(3)

阅读更多
Spring2.0引入的jndi-lookup内容模式

  自从Spring2.0开始,便引入了XML Schema来管理BeanFactory、ApplicationContext的配置。无论是语义,还是表达、复用能力,XML Schema都强于DTD。使用XML Schema定义新的数据类型非常方便,当然,要掌握XML Schema还是要费一番功夫的。在RDBMS领域,存在很多O/R Mapping技术,比如Hibernate、JPA、TopLink、Kodo JDO等。在XML领域,也存在很多O/X Mapping技术,比如XML Beans、JAXB、Castor等。借助于它们,应用操作XML文档会很方便。

  Spring引入的jee内容模式中含有jndi-lookup数据类型,使用它能够大大简化JNDI的配置。开发者只需要调整Spring XML配置文件,而应用本身不需要做任何修改。相应的内容模式如下,它定义了jndi-lookup的结构和语义。

Jndi-name: 待查找的JNDI名,必填项
Resource-ref:是否是资源引用,可选项。如果是,则需要在web.xml和厂商特定的部署描述符中进行映射。默认取值为false。
Cache:是否缓存查找到的JNDI对象,可选项。默认取值为true
Expected-type:期待的JNDI对象类型,可选项
Lookup-on-startup:是否在启动时去JNDI上查找对象,可选项。默认取值为true
Proxy-interface:代理接口,可选项。配合cache和lookup-on-startup使用
Environment:JNDI环境信息,可选项。如果有多项值对需要给出,则要遵循属性文件的格式。

  接下来,我们将重点放在DTD(Spring1.x)到XML Schema(Spring2.0)的移植上。开发者只需要将jee命名空间(spring-jee-2.0.xsd)导入到spring配置文件中,便可以使用到它,具体如下。
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jee="http://www.springframework.org/schema/jee"
       xsi:schemaLocation=
       		"http://www.springframework.org/schema/beans 
       			http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
			  http://www.springframework.org/schema/jee 
			    http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">


  研究这一新特性,示例配置如下,开发者再也看不到JndiObjectFactoryBean、JndiObjectTargetSource的影子,而且配置清晰。
	<jee:jndi-lookup id="tq" jndi-name="queue/testQueue"
			cache="false" 
			expected-type="javax.jms.Queue" 
			lookup-on-startup="true" 
			proxy-interface="javax.jms.Queue"
			resource-ref="false">
			<jee:environment >
				java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
				java.naming.provider.url=jnp://localhost:1099
				java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
			</jee:environment>
	</jee:jndi-lookup>
由于该示例运行在web容器之外,因此配置看起来稍微有一点复杂。如果应用运行在web容器之中,而且与本地JNDI服务交互,则不用提供environment属性。下面给出的两个版本都是合法的。
<jee:jndi-lookup id="tq" jndi-name="queue/testQueue"/>

<jee:jndi-lookup id="tq" jndi-name="queue/testQueue"
			cache="false" 
			expected-type="javax.jms.Queue" 
			lookup-on-startup="true" 
			proxy-interface="javax.jms.Queue"
			resource-ref="false"/>
最后要指出的是Spring2.0兼容Spring1.x的所有配置。

分享到:
评论
1 楼 newlifewant 2012-09-23  
   thanks !

相关推荐

    一种基于STC增强型单片机的大电容的测量.docx

    这一设计使得系统更加紧凑,易于集成。 ##### 3.2 充电电路计算 充电电路的核心在于计算RC电路的时间常数。通过对电容的充电过程进行监测,可以获取到电容充电到特定电压所需的准确时间。通过单片机控制充电过程,...

    公网IP/网站运行侦查员

    1.本软件可以得到自己上网的公网的IP地址,并且可以时时的监测是否变换了, 2.同时可以监测自己关注... EMail:jindi_hwm@sohu.com 网址:http://www.yqifa.com http://www.jiqing168.com http://www.asp112.com

    基于java的大容量电子邮件系统技术架构.docx

    Java对XML和Web Service的良好支持,使得系统能够轻松地与其他应用和服务集成,实现邮件系统的功能扩展。相较于基于CGI的邮件系统,Java具有更好的性能、安全性和开发效率。 在大容量电子邮件系统的技术架构设计中...

    关于JAVA的jmail组件

    Jindi Mail2SMS是一个邮件到短信息的网关软件。该软件基于Java编写,采用标准的POP3协议与邮件服务器通讯,采用RS232实现手机对手机或HTTP方式实现WEB对手机的短信息SMS发送。还可以通过CMPP协议与中国移动短消息...

    2024年欧洲磷酸二钙市场主要企业市场占有率及排名.docx

    - **中国本土企业**:Lomon Group、Jindi Chemical、Yunnan Copper Shengwei Chemical等企业在国内市场表现突出。 #### 四、销售渠道及目标客户分析、欧洲磷酸二钙进出口情况分析 - **销售渠道**:通过直接销售、...

    如何定位crash的终端命令

    通过dysm定位crash,结合终端命令,定位到具体哪一行代码出现问题。

Global site tag (gtag.js) - Google Analytics