Die Dateiübertragung wird nicht direkt in vorgegebenen von Spring Cloud verkapselten vorgegebenen, kann jedoch durch Einführung von vorgefertigten Erweiterungspaketen implementiert werden. Daher werden wir darüber sprechen, wie sie im Detail implementiert werden.
Dienstleister (Dateien empfangen)
Die Implementierung des Dienstanbieters ist relativ einfach. Befolgen Sie einfach die normale Implementierungsmethode von Spring MVC, z. B.:
@RestControllerPublic Class UploadController {@postmapping (value = "/uploadFile", Consumes = mediateType.multipart_form_data_value) public String handle fileUpload (@RequestPart (value = "Datei") multiPartFile -Datei) {{return Datei). }}Serviceverbraucher (Datei senden)
Da der Service -Verbraucher den vorgetäuschenden Kunden nutzt, müssen hier wie folgt die Abhängigkeit von TEFT von der Einreichung von Formularen eingeführt werden:
<Depopenty> <gruppe> io.github.openfesign.form </GroupId> <artifactId> Feign-Form </artifactId> <version> 3.0.3 </Version> </abhängig> <Depopentcy> <gruppe io.github.openfe.form </gruppactId> <artifactid> feign-form-for-pring </artifactId> <version> 3.0.3 </version> </abhängig> <depeopcy> <gruppe> commons-fileUpload </Groupid> <artifactId> commons-fileUpload </artifactid> </abhängig>
Definieren Sie FeignClient, vorausgesetzt, der Dienstname des Dienstanbieters ist Upload-Server
@FeignClient(value = "upload-server", configuration = TestServiceClient.MultipartSupportConfig.class)public interface UploadService { @PostMapping(value = "/uploadFile", consumers = MediaType.MULTIPART_FORM_DATA_VALUE) String handleFileUpload(@RequestPart(value = "file") MultipartFile Datei); @Configuration Class MultiPartSupportConfig {@Bean public cnodierer feignFormcoder () {return New SpringFirmalEncoder (); }}}Versuchen Sie nach dem Start des Dienstanbieters, Testfälle in den Service -Verbraucher zu schreiben, um die Datei über den oben definierten vorliegenden Client zu übergeben, z. B.:
@Test@SneakyThrowSpublic void testHandleFileUpload () {Datei file = new File ("Dateien/aaa.txt"); DiskFileItem fileItem = (diskFileItem) neuer diskFileItemFactory (). CreateItem ("Datei", mediatype.text_plain_value, true, file.getName ()); try (inputStream input = new FileInputStream (Datei); OutputStream OS = FileItem.getOutputStream ()) {ioutils.copy (Eingabe, OS); } catch (Ausnahme E) {neue IllegalArgumentException ("Ungültige Datei:" + e, e) werfen; } MultiPartFile multi = new commonsMultiPartFile (FileItem); log.info (testServiceClient.HandleFileUpload (multi));}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.