libro
www.tuyano.com
初心者のためのSpring Bootプログラミング入門

テンプレートの利用 (1/6)

作成:2014-06-08 09:28
更新:2014-06-08 09:28

■@Controllerを使う

前回、ごくごくシンプルなWebアプリのスクリプトを書きました。これはこれで簡単に作れていいのですが、ちょっと気になる点があります。それは「@RestControllerを使う」という点です。これは名前からしてRESTfulなサービスを作るのに用意されているもの、という感じがしますね(実際そうですが)。もっと普通のコントローラーはないのでしょうか。

実は、あります。「@Controller」というものです。これがSpring MVCのコントローラーを作成する際の基本となるアノテーション、といってよいでしょう。では、これを実際に使ってみましょう。

前回作成したapp.groovyを、下のリスト欄のように書き換えてみてください。そしてspring runコマンドで実行してみましょう。前回と同じように、ごくシンプルなものですがHTMLによるWebページが表示されます。

ここでは、クラスのアノテーションが@RestControllerから@Controllerに変わっています。それにくわえてもう1つ、変わっているところがあります。メソッドに、新たに「@ResponseBody」というアノテーションが追加になっていますね。

これは、Webのレスポンスボディを持つものであることを示すアノテーションです。要するに、このメソッドにアクセスしたら、レスポンスが返るよ、ということを指定していたのですね。

前回の@RestControllerは、なぜいらなかったのか? それは、@RestControllerは、@Cotroller + @ResponseBodyの役割を果たすものだったからです。だから不要だったんですね。

(※正確には、@RestController = @Controller + @ResponseBodyではありません。@RestControllerには、@Controllerに含まれる@Componentがありません。両者は微妙に違うものなんです。なので、@RestController ∋ @Controllerというわけではありません。が、まぁだいたい「@Controllerに@ResponseBodyを足したものが@RestControllerだ」と思っていいでしょう)

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

@Controller
class MyBootApp {
    
    @RequestMapping("/")
    @ResponseBody
    def top() {
        "<html><body><h1>Hello</h1><p>it's @Controller annotation sample!</p></body></html>";
    }

}

※関連コンテンツ

「初心者のためのSpring Bootプログラミング入門」に戻る