3月22日

24472 ワード

きょう習った

  • Springbootインストールと実行;開発優先パラメータ
  • Springboot
  • Framework


    「スケルトンまたは基幹を構成するコードの集合」
    Frameworkには4つのメリットがあります.

  • ある程度完成した場合、必要な部分を組み立てる形を開発することができる.

  • 一定の品質保証のある製品を得ることができる.

  • 開発時間を短縮できます.
  • Frameworkタイプ


    SpringMVC(JavaのWebフレームワーク);
    Django(PythonのWebフレームワーク)、
    Flask(PythonのマイクロWebフレームワーク);
    Ruby on Rails(RubyのWebフレームワーク)、
    .NET Framework,
    Node.js(Express.jsフレームワーク)など

    SpringFramework


    開発後はメンテナンスが容易で開発が容易であるが,多くの機能を有するため,かなり重い機能を用い,多様な機能を有するために多くの練習が必要である.

    インストールSTS 4


    https://spring.io/
    Projects -> Spring Tools 4

    ダウンロードしたファイル.jarファイルなので解凍する
    cmdウィンドウまたは右クリックしたgitbashhereメニューを使用します.
    JAva-jar[ファイル名]入力時に自動解凍
    Window=>Preferences=>Java=>インストールJREで、Addボタンをクリックします.
    jdk-11をバージョンに変更します.
    General=>符号化をutf-8に変更

    Springbootを使用して表示


    基本的な使い方

  • @getMappingはgetParameterに類似していてもよい.
  • @ポストマッピングは、指定アドレスに送信される
  • である.
    package com.myapp.demo.web;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    // 주소창에 주소를 적으면 안의 메소드가 요청을 받는다.
    @RestController
    // 주소창에 localhost:포트번호 /hello 이면 이 클래스로 온다
    @RequestMapping("/hello")
    public class HelloController {
    
    	// get메소드로 / 들어오면 return
    	// /hello 안에 /basic을 적으면 이 메소드를 return 함
    	@GetMapping("/basic")
    	public String sayHello() {
    		
    		
    		return "<h1>헬로우 월드2</h1>";
    	}
    	
    	@GetMapping("/korean")
    	public String translate() {
    		return "<h1>GetMapping 테스트 </h1>";
    	}
    	
    	@GetMapping("/japan")
    	public String translatejp() {
    		return "<h1>GetMapping 테스트 </h1>";
    	}
    	
    	@GetMapping("/form")
    	public String form() {
    		return "<form method=\"POST\" action=\"/hello/formPost\">\r\n"
    				+ "	<p>\r\n"
    				+ "		<strong>아이디</strong>\r\n"
    				+ "		<input type=\"text\" name=\"name\" value=\"\">\r\n"
    				+ "	</p>\r\n"
    				+ "	<p>\r\n"
    				+ "		<strong>비밀번호</strong>\r\n"
    				+ "		<input type=\"password\" name=\"password\" value=\"\">\r\n"
    				+ "	</p>\r\n"
    				+ "	<p>\r\n"
    				+ "		<strong>성별</strong>\r\n"
    				+ "		<input type=\"radio\" name=\"gender\" value=\"남성\">남자\r\n"
    				+ "		<input type=\"radio\" name=\"gender\" value=\"여성\">여자\r\n"
    				+ "	</p>\r\n"
    				+ "	<p>\r\n"
    				+ "		<strong>응시분야</strong>\r\n"
    				+ "		<input type=\"checkbox\" name=\"part\" value=\"영어\">영어\r\n"
    				+ "		<input type=\"checkbox\" name=\"part\" value=\"수학\">수학\r\n"
    				+ "	</p>\r\n"
    				+ "	<p>\r\n"
    				+ "		<input type=\"submit\" value=\"제출\">\r\n"
    				+ "	</p>\r\n"
    				+ "</form>";
    	}
    	
    	// post 방식에 /formPost로 전송받을 때
    	@PostMapping("/formPost")
    	public String formpost(@RequestParam("name") String name,
    							@RequestParam("password") String password,
    							@RequestParam("gender") String gender,
    							@RequestParam("part") String part) {
    		
    		return "아이디는 " + name + ", 비밀번호는 " + password + ", 성별은 " + gender + ", 응시과목은 " + part;
    	}
    	// post주소와 같아도 주소에 바로 넣는 get 방식이면 get이 실행됨
    	@GetMapping("/formPost")
    	public String formtest() {
    		return "<h1>post와 같은 주소 </h1>";
    	}
    	// /{id} 주소에 들어가는 PathVarialble
    	// getParmeter와 PathVariable은 유사하지만 다르다
    	@GetMapping("/orders/{id}")
    	public String order(@PathVariable String id) {
    		
    		return "주문 아이디는 : " + id;
    	}

    package com.myapp.demo.web;
    
    import java.util.Arrays;
    import java.util.List;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.myapp.demo.domain.Product;
    
    @RestController
    @RequestMapping("/user") // https://localhost:8070/user
    public class UserController {
    	@GetMapping("/{id}")
    	public String userid(@PathVariable String id) {
    		return "유저아이디 : " + id;
    	}
    	
    	@GetMapping("/{id}/contact")
    	public String displayContact(@PathVariable String id,
    						@RequestParam(value = "phone", defaultValue = "폰 없음") String phone) {
    		
    		return "유저아이디는 " + id + " 전화번호는 " + phone;
    	}
    	
    	// 리스트 리턴해보기 => 제이슨 형식으로 변환되어서 출력됨
    	@GetMapping("/{id}/items")
    	public List<String> displayUserItems() {
    		return Arrays.asList("가방","노트북","신발","태블릿");
    	}
    	
    	// 객체를 리턴해보기 => 제이슨 형식으로 변환되어서 출력됨
    	@GetMapping("/{id}/products")
    	public List<Product> displayUserProducts() {
    		return Arrays.asList(new Product(1, "모자", 5000),
    								new Product(2, "가방", 20000),
    								new Product(3, "노트북", 18000000),
    								new Product(4, "태블릿", 1000000));
    	}
    }


    Springbootポートを変更するには:


    デフォルトポート8080を使用している場合は、
    アプリケーションpropertiesファイル
    server.port=ポート番号を入力してポート番号を変更します.