为什么jax-ws spring服务引用前缀为#,如在ws:service bean =“#myService”中

时间:2010-01-11 21:53:03

标签: spring jax-ws spring-ws

我使用jax-ws commons网站上的教程开发了一个使用jax-ws和Spring的Web服务。它向您展示了如何从spring applicationContext文件(https://jax-ws-commons.dev.java.net/spring/)定义和引用您的服务。

引用Web服务时“#”的原因是什么?我希望看到更像是

的东西
<ws:service name="myEventWS" ref="eventWebService"/> 

但是在上面链接的示例中,我创建了以下工作。

<bean id="eventWebService" class="com.myws.EventWS">
    <property name="model" ref="EventModel"/>
</bean>

<wss:binding url="/EventWS">
    <wss:service>
        <ws:service bean="#eventWebService"/>
    </wss:service>
</wss:binding>

3 个答案:

答案 0 :(得分:2)

<ws:service>正在使用custom configuration namespace,这是Spring的一个功能,它允许您使用更简单的命名空间来表达复杂的bean图。这些自定义命名空间的含义和解释取决于所讨论的实现,在本例中是JAX-WS-Commons项目。似乎作者认为bean=#eventWebService表示你所称的ref="eventWebService"

我不知道他们是这样做的,也许他们认为它更具可读性...也许他们认为bean=eventWebService(没有哈希)意味着一个名字,而不是一个参考......我不知道。文档也不是很清楚。

无论哪种方式,我都非常确定它不是一个核心的Spring语法,也不是我以前见过的惯例。

答案 1 :(得分:0)

“#”告诉bean它不是一个类,而是一个ref。

HTH

答案 2 :(得分:0)

#eventWebService引用类型为EventWebService的bean(根据未指定bean时的默认Spring命名约定)。