Spring

Spring(스프링 프로젝트 구조 , GetController) , @RestController, @RequestMapping, @RequestParam, @GetMapping

code2772 2022. 12. 8. 08:49
728x90
반응형

  스프링 프로젝트 구조

스프링 프로젝트 구조
src > main > java : 자바  코드
src > main > resources > application.properties : 설정정보
src > main > resources > static : 정적 컨텐츠(html, css, js)
src > main > resources > templates : 동적 템플릿

src > test > java : 테스트용 자바코드 작성

build.gradle : 버전 관리

테이블 정의서
(엔티티정의서)
- 보통 엑셀로 작성하며 테이블 및 컬럼명과 데이터 타입등을 작성해놓은 문서

ERD(Entity Relationship Diagram)
- 개체-관계 모델, 테이블간의 관계를 설명해주는 다이어그램
- DB의 구조를 한눈에 파악할 수 있음

✔ 포트 변경방법 -> application.properties -> server.port (원하는 포트로 변경)

✔ GetContoller 

package com.koreait.day2.controller;

import com.koreait.day2.model.Member;
import org.springframework.web.bind.annotation.*;

@RestController// url을 호출할 수 있도록 해주는 기능
@RequestMapping("/api") // http://localgost:8888/api, 어노테이션
public class GetContoller {


    // http://localhost:8888/api/getmethod

    @RequestMapping(method= RequestMethod.GET, path = "/getmethod" ) // ==  @GetMapping("/getparameter2")
    // get으로 호출해야 들어온다
    public String getMethod(){
        return "getMethod() 호출!";
    }

@RestController : @Controller에 @ResponseBody가 결합 및 Json 형태로 객체 데이터를 반환하고 이를 통해 URL을 호출할 수  있도록 해주는 기능을 대략적으로 의미한다.

@RequestMapping : URL을 요청하면 Controller에서 처리 방식 정의 -> 이 요청을 메서드와 메핑하기 위해 사용

 

✔ @RequestMapping (method = RequestMethod.GET, path = "/getmethod") 와  @GetMapping("/getmethod") 동일기능

@RequestMapping(method = RequestMethod.GET, path ="getparameter1")
public String getParameter1(@RequestParam String userid, @RequestParam String userpw){
    System.out.println("userid : " + userid );
    System.out.println("userpw : " + userpw );
    return "getParameter1() 호출!";
}

// http://localhost:8888/api/getparameter1?userid=apple&userpw=1234
@GetMapping("/getparameter2")
public String getParameter2(@RequestParam String userid, @RequestParam(name="userpw") String password){
    System.out.println("userid : " + userid );
    System.out.println("userpw : " + password );
    return "getParameter2() 호출!";
}

✔ @RequestParam(가져올 데이터의 이름)[데이타입][가져올 데이터 담을 변수]

    @RequestParam(name = "userpw")      String        password             와 동일

 

또는 변수를 저장하는 @RequestParam String userid와 같은 방식으로 사용이 가능하다.

 

 

✔ 많은 변수를 저장해야 하는 경우 

// http://localhost:8888/api/getmultiparameter1?userid=apple&userpw=1234&name=김사과&gender=여자&email=apple@asplle.com&age=20
@GetMapping("getmultiparameter1")
public String getMultiparameter1(
       @RequestParam String userid,
        @RequestParam String userpw,
        @RequestParam String name,
        @RequestParam String gender,
        @RequestParam String email,
        @RequestParam String age
){
    System.out.println("userid : " + userid );
    System.out.println("userpw : " + userpw );
    System.out.println("name : " + name );
    System.out.println("gender : " + gender );
    System.out.println("email : " + email );
    System.out.println("age : " + age );
    return "getmultiparameter1() 호출!";
}

위와 같이 일일히 변수들을 지정하기 힘듬

 

따로 맴버 클래스를 만들어 두어 짧은 코드로 해결할 수 있음

package com.koreait.day2.model;

public class Member {
    private String userid;
    private String userpw;
    private String name;
    private String gender;
    private String email;
    private int age;

    public String getUserid() {
        return userid;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public String getUserpw() {
        return userpw;
    }

    public void setUserpw(String userpw) {
        this.userpw = userpw;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Member{" +
                "userid='" + userid + '\'' +
                ", userpw='" + userpw + '\'' +
                ", name='" + name + '\'' +
                ", gender='" + gender + '\'' +
                ", email='" + email + '\'' +
                ", age=" + age +
                '}';
    }
}

✔ 기존 생성한 Member이용 -> (Member member) 선언 후 member을 반환 및 출력하면 간단하게 사용이 가능

// http://localhost:8888/api/getmultiparameter2?userid=apple&userpw=1234&name=김사과&gender=여자&email=apple@asplle.com&age=20
@GetMapping("/getmultiparameter2")
public Member getMultiParameter2(Member member){
    System.out.println(member);
    return member;
}

 

반응형