Spring]spring開発mvc,api方式


Spring開発を学びたいので、その上で一番有名なキム・ヨンハン講師のSpringコース図順で授業を受けます.
もうちょっと整理しておきたいので、2回目に見たときはスプリングを簡単に理解したい方におすすめです.もちろんスプリング自体は難しいですが、説明しやすい感じがします...!
Web開発方法
1.静的コンテンツ
2.MVCモード
3.API方式

静的コンテンツ


:コントローラを使用せずにリソース内のhtmlファイルを要求して表示します.
  • Webブラウザは、内蔵のTomcketサーバhello-staticを使用します.受信htmlアドレス
  • 埋め込みトムケントサーバはスプリングガイド
  • に移行した.
  • スプリングコントローラファイルにhelloスタティックコントローラ
  • が存在するかどうかをまずチェックする.
  • 次のリソースファイルを検索
    →controllerはresources
  • より優先

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


    :model、view、controllerでロールを割り当て、データを渡してWebに表示する方法.
    @GetMapping("hello-mvc")
        public String helloMvc(@RequestParam("name") String names, Model model) {
            model.addAttribute("name", names);
            return "hello-template";
        }
    [HelloController.java]
    <html xmlns:th="http://www.thymeleaf.org">
    <body>
    <p th:text="'hello ' + ${name}">hello! empty</p>
    </body>
    [hello-template.html]
  • コントローラは、querystring nameの値を外部から取得し、nameに格納する.
  • モデルオブジェクトにnameというキーの値nameを渡します.
  • hello-templateを返し、モデルオブジェクトをhtmlファイルに渡し、入力値に変換し、結果をWebページに出力します.
  • RequestParamは外部から値を渡します.(この値をmodleオブジェクトに渡す)
  • Webブラウザでは、hello-mvcアドレスを内蔵のTomcatサーバに渡し、springコンテナに渡します.
  • コントローラはhello-mvcにマッピングされたメソッドを呼び出し、データを含むモデルをviewResolverに渡す
  • Thymeleafテンプレートエンジンはモデル値をレンダリングし、変換後にhtmlをWebブラウザ
  • に渡す.
    →テンプレートエンジンに変換してWebブラウザに移動
    →モデルに入れて伝える

    API


    :htmlエンジンとテンプレートエンジンを使用せずに結果を直接渡します.
       @GetMapping("hello-api")
        @ResponseBody
        public Hello helloApi(@RequestParam("name") String name){
            Hello hello = new Hello();
            hello.setName(name);
            return hello; //객체를 전달
        }
    
    
        static class Hello{ //클래스 안에서 static class 선언(HelloController.Hello라고 생각하면됨)
            private String name;
    
            public String getName() {
                return name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
        }
  • @ResponseBody→http直接データをbodyに入れる
    setName呼び出し
  • データ設定
  • @ResponseBodyは、ViewResolverではなく、HttpMessageConverterによって実行される
  • を使用します.
  • 文字を返すと、すぐに応答に送信され、オブジェクトに送信するとjson方式でデータが作成され、http応答に応答し、
  • .
  • 文字の単純文字の場合、StringConverterは操作を実行します.
    対象面JsonConferenceの動作