【Java】ControllerとRouteingについて

こんにち、masumasuです。

寒い日が続きますが 皆様、風邪には注意してください。

今回は、Spring BootのにWebアプリを作る上で欠かせない「コントローラー」と「ルーティング」について書いていきます。

ここを理解すれば、ブラウザからアクセスしたときにどのメソッドが実行されるのかが分かるようになります。

まず、Spring BootでWebアプリを作る場合、クラスに@Controllerまたは@RestControllerを付けます。
@ControllerはHTMLを返すときに使い、Thymeleafなどのテンプレートエンジンと組み合わせます。

一方、@RestControllerはJSONや文字列を直接返すAPI用で、最近のWeb開発ではこちらを使う場面も多いです。

次に、ルーティング(URLとメソッドの対応づけ)は@GetMapping@PostMappingを使って指定します。

たとえば以下のような簡単なコントローラーを作ってみましょう。

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(@RequestParam(defaultValue = "World") String name) {
        return "Hello, " + name + "!";
    }
}

この状態でアプリを起動し、ブラウザでhttp://localhost:8080/helloにアクセスすると「Hello, World!」と表示されます。

さらに/hello?name=Masuと入力すれば「Hello, Masu!」になります。

@RequestParamを使うことでURLパラメータを簡単に受け取ることができるのです。

また、テンプレートを使いたい場合は@Controllerに変更し、return "hello";のようにHTMLファイルを返すことも可能です(src/main/resources/templates/hello.htmlにファイルを置きます)。

まとめ

今回は、Javaで使用されているコントローラーとルーティングについて書きました。

ご覧いただきありがとうございました。