본문 바로가기
Programming/Java

AOP (Aspect-Oriented Programming) 관점지향 프로그래밍

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에서 다음과 같이 실행된다. 

 

728x90
반응형

'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