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