| 종류 | 환경 |
|---|---|
| IDE | Intellij IDEA 2023.1.2 (Ultimate Edition) |
| 언어 | SpringBoot 3.1.0 |
| 타입 | Gradle - Groovy |
| JDK | corretto-17 |
| 패키지 생성 | Jar |
| 버전관리 | Github |
| 종류 | 이름 |
|---|---|
| Web | Spring web |
| Developer Tools | Spring Processor / Lombok |
@RequestMapping은 스프링 4.3버전 이후 잘 사용되지 않음
package com.springboot.hello.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/v1/get-api") //class 위에 @RequestMapping 가능
public class GetController {
//@RequestMapping은 스프링 4.3버전 이후 잘 사용되지 않음
//@RequestMapping -> @GetMapping
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String getHello() {
return "Hello World";
}
}

package com.springboot.hello.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/v1/get-api") //class 위에 @RequestMapping 가능
public class GetController {
//매개변수가 없는 GET 메소드 구현
@GetMapping(value = "/name")
public String getName() {
return "sky bunny";
}
}

package com.springboot.hello.controller;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/v1/get-api") //class 위에 @RequestMapping 가능
public class GetController {
//@PathVariable을 활용한 GET 메서드 구현
@GetMapping(value = "/var1/{var}")
public String getVariable(@PathVariable String var) {
return "★" + var;
}
}

package com.springboot.hello.controller;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/v1/get-api") //class 위에 @RequestMapping 가능
public class GetController {
//요청 Uri 변수명과 메소드 변수명이 다를 때
@GetMapping(value = "/var2/{variable}")
public String getVariable2(@PathVariable("variable") String var) {
return "★" + var;
}
}

package com.springboot.hello.controller;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/v1/get-api") //class 위에 @RequestMapping 가능
public class GetController {
//@RequestParam을 활용한 GET 메소드 구현
@GetMapping(value = "/request1")
public String getRequestParam1(
@RequestParam String name,
@RequestParam String email,
@RequestParam String organization
) {
return name + " " + email + " " + organization;
}
}

package com.springboot.hello.controller;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("/api/v1/get-api") //class 위에 @RequestMapping 가능
public class GetController {
//Map 객체 활용
@GetMapping(value = "/request2")
public String getRequestParam2(@RequestParam Map<String,String> param) {
StringBuilder sb = new StringBuilder();
param.entrySet().forEach(map -> {
sb.append(map.getKey() + " : " + map.getValue() + "\n");
});
//param.forEach((key, value) -> sb.append(key).append(" : ").append(value).append("\n"));
return sb.toString();
}
}

DTO(Data Transger Object) 다른 레이어 간의 데이터 교환에서 활용
package com.springboot.hello.dto;
public class MemberDto {
private String name;
private String email;
private String organization;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getOrganization() {
return organization;
}
public void setOrganization(String organization) {
this.organization = organization;
}
@Override
public String toString() {
return "MemberDto{" +
"name='" + name + '\'' +
", email='" + email + '\'' +
", organization='" + organization + '\'' +
'}';
}
}
package com.springboot.hello.controller;
import com.springboot.hello.dto.MemberDto;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/v1/get-api") //class 위에 @RequestMapping 가능
public class GetController {
//DTO 객체를 활용한 GET 메서드 구현
@GetMapping(value = "/request3")
public String getRequestParam3(MemberDto memberDto) {
return memberDto.getName() + " " + memberDto.getEmail() + " " + memberDto.getOrganization();
//return memberDto.toString();
}
}
