W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
如果需要禁用此功能,請(qǐng)?jiān)O(shè)置stubrunner.stream.enabled=false
屬性。
假設(shè)您具有以下Maven存儲(chǔ)庫(kù),其中包含streamService
應(yīng)用程序的已部署存根:
└── .m2 └── repository └── io └── codearte └── accurest └── stubs └── streamService ├── 0.0.1-SNAPSHOT │ ├── streamService-0.0.1-SNAPSHOT.pom │ ├── streamService-0.0.1-SNAPSHOT-stubs.jar │ └── maven-metadata-local.xml └── maven-metadata-local.xml
進(jìn)一步假設(shè)存根包含以下結(jié)構(gòu):
├── META-INF │ └── MANIFEST.MF └── repository ├── accurest │ ├── bookDeleted.groovy │ ├── bookReturned1.groovy │ └── bookReturned2.groovy └── mappings
考慮以下合同(編號(hào)1):
Contract.make { label 'return_book_1' input { triggeredBy('bookReturnedTriggered()') } outputMessage { sentTo('returnBook') body('''{ "bookName" : "foo" }''') headers { header('BOOK-NAME', 'foo') } } }
現(xiàn)在考慮2:
Contract.make { label 'return_book_2' input { messageFrom('bookStorage') messageBody([ bookName: 'foo' ]) messageHeaders { header('sample', 'header') } } outputMessage { sentTo('returnBook') body([ bookName: 'foo' ]) headers { header('BOOK-NAME', 'foo') } } }
現(xiàn)在考慮以下Spring配置:
stubrunner.repositoryRoot: classpath:m2repo/repository/ stubrunner.ids: org.springframework.cloud.contract.verifier.stubs:streamService:0.0.1-SNAPSHOT:stubs stubrunner.stubs-mode: remote spring: cloud: stream: bindings: output: destination: returnBook input: destination: bookStorage server: port: 0 debug: true
這些示例適用于三種情況:
要通過return_book_1
標(biāo)簽觸發(fā)消息,請(qǐng)使用StubTrigger
接口,如下所示:
stubFinder.trigger('return_book_1')
要收聽發(fā)送到destination
為returnBook
的頻道的消息的輸出,請(qǐng)執(zhí)行以下操作:
Message<?> receivedMessage = messaging.receive('returnBook')
收到的消息傳遞以下斷言:
receivedMessage != null assertJsons(receivedMessage.payload) receivedMessage.headers.get('BOOK-NAME') == 'foo'
由于已為您設(shè)置了路線,因此您可以向bookStorage
destination
發(fā)送消息:
messaging.send(new BookReturned('foo'), [sample: 'header'], 'bookStorage')
要監(jiān)聽發(fā)送到returnBook
的消息的輸出,請(qǐng)執(zhí)行以下操作:
Message<?> receivedMessage = messaging.receive('returnBook')
收到的消息傳遞以下斷言:
receivedMessage != null assertJsons(receivedMessage.payload) receivedMessage.headers.get('BOOK-NAME') == 'foo'
由于已為您設(shè)置了路由,因此您可以向output
目標(biāo)發(fā)送消息:
messaging.send(new BookReturned('foo'), [sample: 'header'], 'delete')
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)系方式:
更多建議: