Spring]スプリング入門START(21.08.26)


Spring🔥


インフラストラクチャスプリングの開始


プロジェクトの環境設定

  • 2https://start.spring.io/活動場所を表すスプリング起動アイテムを作成できます.Gradle Projectは大勢ですSpring WebとThymeleaf(HTMLテンプレートエンジン)をdependenciesに追加します.
  • Spring Web開発基盤


    mvcとテンプレートエンジン


        @GetMapping("hello-mvc")
        public String helloMvc(@RequestParam("name") String name, Model model){
            model.addAttribute("name", name);
            return "hello-template";
        }
    
    「localhost:8080/hello-mvc?name=spring」に接続すると、内蔵のTomcketサーバを経由してspringに格納されます.helloControllerは「hello-mvc」をマッピングしているので、このメソッドが呼び出されます.モデル内のキーは「name」で、値はURLに渡される「spring」に設定されます.「hello-template」に戻る
    viewResolverはtemplates/で戻り値と同じ名前のファイルを検索し、Thymeleafテンプレートエンジンを使用して処理する必要があります.テンプレートエンジンは、レンダリング変換HTMLによってWebブラウザに戻ります.(静的コンテンツは変換せずにそのまま戻る)

    API


    静的コンテンツ方式を除いて、2種類あります.HTML方式かAPI方式か.

    リターンキャラクタ

        @GetMapping("hello-string")
        @ResponseBody
        public String helloString(@RequestParam("name") String name){
            return "hello " + name;
        }
    
    **ResponseBody** :httpのbodyセクションには、このデータが直接含まれます.
    テキストの戻り値は、要求されたクライアントに直接下がります.景色なんてない

    リターンデータ

        @GetMapping("hello-api")
        @ResponseBody
        public Hello helloApi(@RequestParam("name") String name) {
            Hello hello = new Hello();
            hello.setName(name);
            return hello;
        }
        static class Hello {
            private String name;
    
            public String getName() {
                return name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
        }
    

    ※classでstatic classを使用する場合は、classも使用できます.
    ※過去はXML方式(HTML)を使用していましたが、最近は簡単なJSON方式を使用しています.Spring@ResponseBodyもデフォルトでJSON方式で戻るように設定されています.

    コントローラにマッピングがあり、@ResponseBodyがある場合は、ViewResolveではなくHttpMessageConverterによって操作されます.このデータをhttp応答に直接挿入します.ただし、データが単純な文字ではなくオブジェクトであれば、JSON方式でhttp応答を返す.