3월 22일
오늘 배운 것
- Springboot 설치 및 실행, 개발환경 설정
- Springboot
Framework
"뼈대나 근간을 이루는 코드들의 묶음"
Framework를 사용하면 크게 다음 4가지의 장점이 있습니다.
-
어느정도 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다.
-
일정한 품질이 보장된 결과물을 얻을 수 있다.
-
개발 시간을 단축할 수 있다.
Framework 종류
SpringMVC(Java의 웹 프레임워크),
Django(Python의 웹 프레임워크),
Flask(Python의 마이크로 웹 프레임워크),
Ruby on rails(Ruby의 웹 프레임워크),
.NET Framework,
Node.js(Express.js 프레임워크) 등
SpringFramework
개발 후 유지보수가 쉽고 편리하게 개발을 할 수 있지만 많은 기능을 가지고 있기때문에 상당히 무겁고 다양한 기능을 사용하기 위해서는 많은 연습이 필요하다.
STS4 설치
https://spring.io/
Projects -> Spring Tools 4
다운받은 파일은 .jar 파일이기 때문에 압축을 풀려면
cmd창이나 마우스 오른쪽 클릭의 gitbashhere 메뉴를 이용하여
java -jar [파일 이름] 입력하면 자동으로 압축해제 됨
Window => Preferences => Java => Installed JRE에서 add버튼을 클릭해서
jdk-11을 버전으로 변경을 해주고
General => Workspace에 encoding을 utf-8로 변경
Springboot 사용해보기
기본 사용법
- @getMapping은 getparameter와 유사하게 사용 할 수 있다.
- @postMapping은 post방식으로 지정한 주소에 전송될 시 출력됨
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 port 변경방법
기본 포트인 8080을 사용하고 있다면
application properties파일 안에
server.port = 포트번호 를 입력해서 포트번호를 변경한다.
Author And Source
이 문제에 관하여(3월 22일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tutu10000/3월-22일저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)