2016-09-04 10 views
0

私は、Spring Frameworkを使用していくつかのRESTful Webサービスを作成しました(オンライン/ビデオチュートリアルなどの記事を読むことによって)。Springフレームワークを使用したRESTfulなWebサービス

我々はスプリングMVCモジュールを用いウェブアプリケーションを記述する場合、我々は以下に類似コントローラコード、使用:本のModelAndViewオブジェクトが存在する上記のコードで

@Controller 
public class SimpleController { 

    @RequestMapping("/welcome") 
     ModelAndView handleIncomingWelcomeReq() { 

     ModelAndView mw = new ModelAndView("WelcomePage","welcomeKey","WelcomeKey's value!"); 

     return mw; 
    } 

}

をコントローラは返りますが、これは次のURLのように呼び出すことができます:

http://localhost:8080/contextRoot/welcome 

「ビュー」部分を除外してモデルを返すだけで、Webサービスのようには機能しません。

私の疑問は、Springでは、WebアプリケーションまたはRESTful Webサービスを作成するために同じAPI/jarを使用したことでしょうか?

私が読んでいることは、Spring RESTサポートのために、@RestController注釈(それ自体は@Contoller + @ResponseBody注釈のようなものです)を持っています。

したがって、Spring FrameworkでREST WSとWebアプリケーションの実装が異なる点は何ですか?

誰でも分かりますか?

+0

私はこの質問がなぜ閉会と投票されたのか分かりません。私はこの質問をする前に私がした宿題を説明しました。経験豊かな開発者には尋ねられないかもしれませんが、初心者にとっては意味があるかもしれません。この質問に他のものが編集されることが予想される場合、私は喜んで行いますが、疑念を明確にするのを助けてください。よろしくお願いします – CuriousMind

+0

私はそれはあまりにも広い質問です。 Restはjax-rs、webservicesはjax-wsです。 –

+0

@ニコラス:お返事ありがとうございます。私の質問はRESTful WSのSpringフレームワークのサポートに特有です。 Springを使用してRESTfulなWSを作成すると、Spring MVCベースのWebアプリケーションを作成する際に使用されるのと同じAPIを使用するのかどうか、私が理解している混乱はありますか? – CuriousMind

答えて

0

はい、Springを使用してRestService & Webアプリケーションを記述することができます。 @RestControllerを使用してRESTサービスを、@ControllerをWebアプリケーション用に使用します。

@RestControllerは、@Controllerと@ResponseBodyを持つメタ注釈です。 @Controllerは登録されたViewResolversを検索しますが、@RestControllerは検索しません。

0
@Controller 
public class SimpleController { 
@RequestMapping("/welcome", method = RequestMethod.GET, produces="application/json") 
    public @ResponseBody JSONObject handleIncomingWelcomeReq() { 
    JSONObject j = new JSONObject(); 
    j.put("welcomeKey", "WelcocmeKey's value!"); 
    return j; 
} 

ここでは、ほとんどがユーザーIDであるRest idを返すコードです。

0

@RestControllerの代わりに@Controllerを使用することをお勧めします。@ RestControllerはビューをスキャンしません。そのため、アプリケーションに独自のビューがあり、そのサービスを公開する必要がある場合は、@ ReesponseBodyアノテーションとともに@Controllerを使用し、JSONとして出力します。

もう1つの選択肢は、別のコントローラがリクエストを処理する、RESTfulなWebサービスのURLがまったく異なることです。これらの異なるコントローラに@RestControllerアノテーションを付けることができます。

関連する問題