W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在實做AJAX中我們提到服務(wù)定位表達式的概念,接下來我們詳細對服務(wù)定位表達式做一個說明。 在Dorado中服務(wù)定位表達式是用來描述服務(wù)的查找方式,即Dorado通過服務(wù)定位表達式來查找到具體服務(wù),以便于對服務(wù)進行調(diào)用。 它的基本格式:
這里的服務(wù)名通常是代表一個JavaBean。 目前支持的協(xié)議(協(xié)議也可以擴展):
以剛才實做的AJAX范例說明,首先我們了解一下什么是可暴露服務(wù),在Dorado中所有的Ajax調(diào)用只能調(diào)用到那些明確聲明為可暴露服務(wù)的Java方法,否則是無法調(diào)用成功的??杀┞斗?wù)包括兩個部分:
在Ajax.java中我們利用annotation機制實現(xiàn)了spring的bean聲明:
@Component
public class Ajax {
}
另外我們在WEB-INF的doradohome的app-context.xml中添加了如下的代碼:
<context:component-scan base-package="com.bstek.dorado.sample" />
這樣系統(tǒng)默認(rèn)就會自動掃描到Ajax類,并注冊到Spring的BeanFactory中。 而對于toUpperCase方法,我們在此處采用了@Expose標(biāo)記:
@Expose
public String toUpperCase(String str) {
return "input:\n" + str + "\n\n" + "output:\n"
+ str.toUpperCase();
}
@Expose標(biāo)記是Dorado專門提供的標(biāo)注,用于定義可暴露服務(wù),根據(jù)這個規(guī)則Dorado會將這個方法自動注冊在ExposedServiceManager中,其中服務(wù)名為:ajax.toUpperCase,服務(wù)表達式為:spring:ajax.toUpperCase。由于本例采用的是spring協(xié)議,因此服務(wù)定位表達式以"spring:"作為前綴,而服務(wù)名就是Ajax.java在BeanFactory中注冊的bean的id,annotation機制會自動將Ajax的A自動轉(zhuǎn)換為小寫字母。 另外對于一些其他不采用annotation的系統(tǒng)我們也可以手動的注冊可暴露服務(wù),其方法是在Spring的配置文件中添加如下的代碼:
<bean parent="dorado.exposedServiceRegister">
<property name="services">
<map>
<entry key="ajax#toUpperCase" value="spring:ajax#toUpperCase" />
</map>
</property>
</bean>
如果有多個服務(wù),就在map中添加就是了。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: