春ブーツマイクロRestTemplateコールの他のサービスを使用して

RestTemplate位置spring-webモジュールは、org.springframework.web.clientパッケージの下、春の同期クライアントのHTTPアクセスのコアクラスは、それが簡素化し、インタラクティブなHTTPサーバ側のためにRESTfulな原理の使用を強制します。これは、HTTP接続、別のURLを提供するために、アプリケーションコード(いくつかのテンプレート変数がかかる場合があります)と、抽出結果を処理します。

注:デフォルトでは、RestTempleteは、HTTP接続を確立するために、標準のJDKツールに依存している、あなたはできるsetRequestFactoryようにApacheのHttpComponent、ネッティーとOkHttpとして、彼を置き換えるために異なるHTTPライブラリを使用する属性。

 

 

 

さらに、exchangeおよびexecute方法上記のプロセスの一般的なバージョンはそれほど頻繁に組み合わせて使用される追加サポートするために使用することができるされている(例:PUTを運ぶHTTP乾上がる、HTTPレスポンスボディ)が、ベースのHTTPライブラリが使用されることに留意されたいは、必要をサポートしなければなりません組み合わせ。

各HTTPメソッドは3種類あります。第三URIを受信URIとURIの変数(配列、および変数)の2つの受信テンプレート文字列を、URIテンプレートに対して、嘉定をエンコードする必要があり、それを注意してください。例えば:  restTemplate.getForObject("https://example.com/hotel list")なりhttps://example.com/hotel%20list URIまたはURIテンプレート変数が符号化されている場合は、デュアルコーディングが例えば起こるであろうことを、この手段も:  https://example.com/hotel%20listとなっhttps://example.com/hotel%2520list使い、これを回避するためにURIコード化する前に(または再利用)メソッドが提供するバリアントURI。URIをコードの完全な制御のために準備するために、使用することを検討してくださいorg.springframework.web.util.UriComponentsBuilder

内部テンプレートでHttpMessageConverterインスタンスのHTTPメッセージを前後にPOJOの間。デフォルトでは、でsetMessageConverters、コンバータの主要なMIMEタイプを登録していますが、他のコンバータにサインアップすることができます。

テンプレートの使用org.springframework.http.client.SimpleClientHttpRequestFactoryDefaultResponseErrorHandler別のHTTP接続として、あるいは、デフォルトのHTTPエラーハンドリング戦略を作成します。それは、それぞれ可能setRequestFactorysetErrorHandlerこれらのデフォルトを上書きします。

デモ

Mavenは導入依存しています

< プロパティ> 
<! - JDK版本- > 
< のjava.version > 1.8 </ のjava.version > 
</ プロパティ> 

< 依存性> 
< 依存> 
< groupIdを> org.springframework.boot </ groupIdを> 
< たartifactId >春-bootスタータウェブ</ たartifactId > 
< バージョン> 1.5.22.RELEASE </ バージョン> 
</ 依存>
<依存> 
< のgroupId > org.springframework.boot </ のgroupId > 
< たartifactId >ばねブートスタータ試験</ たartifactId > 
< バージョン> 1.5.22.RELEASE </ バージョン> 
< スコープ>テスト</ スコープ> 
</ 依存関係> 
</ 依存関係>

メッセージEntityクラスを作成します。

パブリック クラスMsgBean {
 プライベート int型のID。
プライベート文字列名; 

公共 INT のgetId(){
 戻りID。
} 

公共 ボイド SETID(int型のID){
 この .ID = ID。
} 

パブリック文字列のgetName(){
 戻り名。
} 

公共 ボイドのsetName(文字列名){
 この .nameの= 名前。
} 

@Override 
パブリック文字列のtoString(){
 リターン "MsgBean {" +  
"ID =" + ID +
"NAME = '" +名+ '\'' + 
'}' ; 
} 
}

マスタークラスの実行SpringBootを作成します。

@SpringBootApplication
 パブリック クラスDemoApplication {
     公共 静的 ボイドメイン(文字列[]引数){ 
        SpringApplication.run(DemoApplication。クラス、引数)。
    } 
}

 

RestTemplateコンフィギュレーションクラスの作成、ターゲット取得TestTemplate

@Configuration
 パブリック クラスRestTemplateConfig { 
    @Bean 
    公共RestTemplate restTemplate(ClientHttpRequestFactory工場){
         戻り 新しいRestTemplate(工場)。
    } 

    @Bean 
    公共ClientHttpRequestFactory simpleClientHttpRequestFactory(){ 
        SimpleClientHttpRequestFactory工場 = 新しいSimpleClientHttpRequestFactory()。
        factory.setReadTimeout( 5000); // 5秒 
        factory.setConnectTimeout(15000); // 15秒
        戻り工場。
    } 
}

 

、サービスクラスがServerControllerと呼ばれる作成したマイクロサービス、安らかなAPI呼び出しをシミュレートします

/ ** 
* 2019年9月24日にfubinによって作成されます。
*被调用的コントローラ
* / 

@RestController 
(@RequestMapping "サーバ" パブリック クラスServerController { 

(@GetMapping "/ GET" パブリックMsgBeanのget(){ 
MsgBean msgBean = 新しいMsgBean()。
msgBean.setId( 1 )。
msgBean.setName( "MSG1" );
返すmsgBeanを。
} 

@PostMapping( "/ポスト" 公衆MsgBeanポスト(){ 
MsgBean msgBean = 新しい MsgBean()。
msgBean.setId( 1); 
msgBean.setName( "MSG1" );
返すmsgBeanを。
} 

/ ** 
*ポスト方法传值
* @paramのID 
* @paramの
* @return 
* / 
@PostMapping( "/ postParam" 公共の文字列postParam(@RequestParam( "ID")文字列ID、@RequestParam( "名前" )文字列名){ 
するSystem.out.println( "郵便番号:" + ID)。
System.out.println( "ポスト名:" + 名)。
リターン「ポストSUCC」


ID
* @paramの
* @return 
* / 
@PutMapping( "/ PUT" のパブリック文字列PUT(@RequestParam( "ID")文字列ID、@ RequestParam( "名前" )文字列名){ 
System.out.printlnは(「PUT ID: "+ ID); 
System.out.println( "PUT名:" + 名)。
戻る「デルSUCC」
} 


/ ** 
*デル方法传值
* @paramのID 
* @return 
* / 
@DeleteMapping( "/デル" パブリック文字列デル(@RequestParam( "ID" 文字列ID){ 
のSystem.out。"デルID:" +ID)。
戻る「デルSUCC」
} 


}

 

ServerControllerサービスRestRemplateを呼び出すことにより、サービスコールクラスInvokeControllerを作成します。

おすすめ

転載: www.cnblogs.com/fubinhnust/p/11930744.html