我使用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>
答案 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命名约定)。