EL(Expression Language; 표현 언어): 간단하게 참조, 에러 적음
Maven 프로젝트 설정: configure- -> convert to Maven Project
프로젝트 필요한 라이브러리 등록: WEB-INF/lib에 복사해둔 JSTL 관련 라이브러리 삭제하고
필요한 것에 대해 https://mvnrepository.com 에서 JSTL 검색하고 1.2버전 코드 복사해서 사용
스프링 AOP: OOP처럼 모듈화해서 재사용 가능한 구성 만들고 편하게 객체 적용하게 -> 비지니스 로직 구현에만 집중
즉, 잡다한 코드 오류에 시간쓰지말고 생산적인 목적을 위해 일의 능률을 향상시키는 것.
프레임워크(framwork): 반드시 지켜야하는 규정. 일일이 의존성(dependency) 관리하고.. ~ 스프링프레임워크
라이브러리: 써도되고 안써도 되는 것.
-> 스프링부트(라이브러리)는 알아서 관리해준다.
스프링부트는 TOMcat를 사용하는 스프링 MVC 구조로 동작한다.
GET API: 서버에서 값을 가져올 떄 사용하는 API. 이를 작성하는 방법은 다양하다.
스프링부트 관련하여서는 Inetlij를 사용하였다.
스프링부트는 @ annotaion 조금 입력시 바로 알아서 관련된 내용을 import하는 구문 등을 자동 작성해준다.
Tomcat port 설정은 다음과 같이 server.port = 번호 를 지정해주어야 한다. (기본은 8080이지만 8080을 못 쓰는 경우)
1. 스프링부트 RequestMapping 이용하기
package com.springboot.api.controller;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("/api/v1/get-api")
// 요즘은 method 생략하고 구체화해서 쓰지만 예전의 request mapping 사용 용도는 익혀야 한다.
public class GetController {
// http://localhost:8081/api/v1/get-api/Hello 대소문자 구분 유의!
@RequestMapping(value = "/Hello", method = RequestMethod.GET)
public String getHello() {
return "Hello World";
}
// http://localhost:8081/api/v1/get-api/name 단순 get 하는 경우
@GetMapping(value = "/name")
public String getName(){
return "Flature";
}
// http://localhost:8081/api/v1/get-api/variable1/{String값} 값을 입력받아서 반영하기 (주로 영어만 잘 됨)
@GetMapping(value = "/variable1/{variable}")
public String getVariable1(@PathVariable String variable) {
return variable;
}
// http://localhost:8081/api/v1/get-api/variable2/{String값}
@GetMapping(value = "/variable2/{variable}")
public String getVariable2(@PathVariable("variable") String var) {
return var;
}
// http://localhost:8081/api/v1/get-api/request1?name=value1&email=value2&organization=value3
@GetMapping(value = "/request1")
public String getRequestParam1(
@RequestParam String name,
@RequestParam String email,
@RequestParam String organization) {
return name + " " + email + " " + organization;
}
// http://localhost:8081/api/v1/get-api/request2?key1=value1&key2=value2
@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");
});
return sb.toString();
}
}
2. DTO(Data Transfer Object) 객체를 활용한 구현.
DTO는 데이터 교환 용도로만 사용하는 객체이다.
request 2처럼 일일이 쓸 수도 있지만
따로 클래스(DTO)를 선언해서 하는 형태이다.
package com.springboot.api.dto;
public class MemberDto {
private String name;
private String email;
private String organization;
// 마우스 오른쪽 버튼 누르면 generate 선택 -> getter and setter로 생성
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;
}
// generate에서 toString 생성시 아래가 자동 입력
@Override
public String toString() {
return "MemberDto{" +
"name='" + name + '\'' +
", email='" + email + '\'' +
", organization='" + organization + '\'' +
'}';
}
}
이걸 만들고 기존 java 코드 아래에 다음 내용을 추가한다.
// http://localhost:8081/api/v1/get-api/request3?name=value1&email=value2&organization=value3
@GetMapping(value = "/request3")
public String getRequestParam3(MemberDto memberDto) {
return memberDto.toString(); // name + " " + email + " " + organization 값 return
}
그러면 postman에서 다음과 같이 실행된다.
'Programming > Java' 카테고리의 다른 글
API(POST, PUT, DELETE) 만들기 (1) | 2023.10.25 |
---|---|
useBean을 이용한 JSP 계산기 파일 단순화 (0) | 2023.10.19 |
Servlet (0) | 2023.10.19 |
Javascript를 넣은 회원가입창 만들기 (1) | 2023.10.18 |
[Java web] Hello JSP (2) | 2023.10.17 |