[Spring] 1. Spring Webを開発する3つの方法


Springを用いたWeb開発では,主に静的コンテンツ,MVC,テンプレートエンジン,APIの3方式がある.

1.静的コンテンツ


これは、サーバ上で何もせずにhtmlファイルを直接渡す方法です.
  • を使用してWebブラウザに接続する場合は、まずSpring Bootに内蔵されたTomcketサーバに送信します.
  • トンプトサーバは、まずスプリングコンテナでhello-static関連コントローラを検索します.
  • がない場合は、リソース内のhtmlを検索します.
  • ブラウザでhtmlを画面に送信します.
  • 2.MVCとテンプレートエンジン


    1)MVCとは?

  • Model View Controller
  • モデル:アプリケーション層の情報とデータを表す.
  • ビュー:画面出力ロジックを担当します.
  • コントローラ:モデルとビューを接続する制御ロジックを担当します.
  • 過去コントローラとビューは別々ではなく、ビューのみ→モデル1方式
    -viewは画面を描くことに集中しなければならない.
    -controllerビジネスに関連する内部トランザクションの処理に集中します.
    従って、controllerとviewは分離され、mvc方式で使用される.
  • 2)MVCでhello springを出力する


  • クライアントがlocalhost:8080/hello-staticに接続されている場合、スプリングは内蔵のトムケンサーバを介してcontrollerメソッドを呼び出す.


  • Controllerはhello-template、model(name:spring)をspringに送信します.
  • HelloController.java
  • @Controller
    
    public class HelloController{
    
    	//hello-mvc라는 url에 매칭이 되도록 한다.
    	@GetMapping("hello-mvc")
    	public String helloMvc(@RequestParam("name") String name, Model model){
    		model.addAttribute("name", name);
    		return "hello-template";
    	}
  • 入力パラメータを使用して「name」キーの値を受け入れ、name=?値を使用してhello-templateを返します.

  • viewResolverはviewを検索したり、template engine(thymeleaf)を検索したりすることができます.

  • viewResolverはtemplatesでhello-templateを検索し、Thymeleafテンプレートエンジンに送信します.
  • hello-template.html
  • <html xmlns:th="http://www.thymeleaf.org">
    <body>
    	<p th:text="'hello ' + ${name}">hello! empty</p>
    </body>
    </html>
    HelloControllerのhelloMvc()の名前属性を
  • ${name}で取得
    hello-mvc接続時にパラメータが入力されていない場合は、実行されません.
  • requiredのデフォルト値はtrueです.選択的に渡す場合は、required=falseに設定します.
  • Thymeleafテンプレートの利点は、サーバを必要とせずにhtmlファイルを開くことです.
  • サーバなしでhtmlをロードすると、hello!空の出力で、サーバが回転している間にテキストが出力されます.
  • テンプレートは、レンダリング変換されたhtmlを送信する.
  • ソースビューを使用すると、変換後のhtmlが表示されます.
  • 3. API


    1)@ReponseBody使用原理


  • HTTPのBODYに文字内容を直接返すコメント
  • @ReponseBodyを使用してViewResolverを使用しません.
  • ViewResolverの代わりにHttpMessageConverterによって操作されます.
  • コードソースが見えるとhtmlタグが見えず、データしか見えません.
  • デフォルト文字処理:StringHttpMessageConverter
  • デフォルトオブジェクト処理:MappingJackson 2 HttpMessageConverter
  • Springでは、オブジェクトをjsonに変換するライブラリとしてJacksonがデフォルトで使用されます.
  • @ResponseBodyを使用して、オブジェクトを返すと、オブジェクトはJSONに変換されます.
  • 2)@ResponseBody文字を返す

    @Controller
    public class HelloController{
    
    	@GetMapping("hello-string")
    	@ResponseBdoy
    		public String helloString(@RequestParam("name") String name){
    			return "hello " + name;
    	}
    }

    3)@ReponseBodyオブジェクトを返す

    @Controller
    public class HelloController{
    	@GetMapping("hello-api")
    	@ReponseBody //Json으로 반환한다.
    	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){
    		his.name = name;
    
    次の文章は基礎課程の金英漢講師の春の講座です:)