본문 바로가기
Spring

[Spring] SpringBoot(@RequestParam과 @PathVariable)

by 떠농 2025. 9. 5.
반응형

https://start.spring.io/

add Dependency 클릭

 

@Data ___ 선생님은 개발할 때 쓰지 않는다.

 

--@Data란?

Getter, Setter를 만들어준다.

 

--쓰지 않는 이유는?

많은 데이터량을 다룰 때 속도가 느리다.

 

--속도가 느린 이유 해결방법?

개발자가 쓰기는 편한데, 프로그램 입장에서는 getter, setter를 만드는데 연산이 복잡하다.

@Data는 Getter와 Setter를 합친 것. @Getter, @Setter 를 따로 써야 속도측면에 문제가 없다.

 

 

코드 리소스를 수정을 하면 다시 재가동을 해야하는데,

SpringBoot Dev Tools가 있으면 파일 수정 후 저장 시 자동으로 서버를 restart 해준다.

 

 

Spring Configuration Processor

properties는 내가 원하는 속성 값들을 지정하는 곳이다.

Ex0722_Bbs_MVC - action.properties 를 읽어들이기 위해  Controller에서 

gradle은 yml로 하는게 좋다. 위 환경설정을 읽어다가 스프링부트 환경적인 객체에게 매핑을 알아서 걸어준다.

외부설정파일(viewResolver) 값들을 java class 필요한 곳에 매핑(연결)을 알아서 해준다.

그런 객체들에게는 @configurationProperties라는 어노테이션을 부여해주면 알아서 매핑을 해준다.

 

필요한 것들을 add해서 generate를 하면 jar파일로 압축파일로 준다.

 

Lombok: getter, setter 만들어준 역할

최소 아래와 같이 4개를 추가해주어야 한다.

 


Spring Boot DevTools: 캐싱을 없애준다거나 실행시켜준다.

Lombok: getter/setter 자동으로 만들어준다.

Spring Configuration Processer : application.properties에 있는 것을 spring환경에 알아서 넣어준다.

 

db연결을 하기 위해서는 sql - jdbc api, MySQL Driver도 체크해주어야 한다.

 

 

 

생성 클릭하여 프로젝트를 생성한다.

 

 

 

pom.xml에 들어가서 톰캣 라이브러리를 추가한다.

<!--tomcat-embed-jasper-->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

 

 

application.properties에 기본적으로 추가해야 할 내용을 추가한다.

spring.application.name=ex0905_ex1


spring.mvc.view.suffix=.jsp
spring.mvc.view.prefix=/WEB-INF/views/


############################################
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/my_db
spring.datasource.username=root
spring.datasource.password=1111
############################################

 

 

 

jsp 만들지 않고 결과가 맞는지 확인하는 방법:

@RestController 어노테이션을 쓰면 된다.

문자열을 리턴해주어 jsp 따로 만들지 않고 콘솔로 확인하는 방법!

package com.sist.ex0905_ex1;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Test1Control {

    @GetMapping("/")
    public String index(){
        return "SpringBoot Ex1";
    }
}

 

 

 

 

@GetMapping으로 파라미터 값을 인자로 줘서 실행해보자.

 

package com.sist.ex0905_ex1;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Test1Control {

    @GetMapping("/")
    public String index(){
        return "SpringBoot Ex1";
    }

    @GetMapping("/t1")
    public String test1(String param){
        return "반갑습니다. 스프링입니다.-param:" + param;
    }
}

 

 

dependency 의존성 줘서 서버 재시작하지 않더라도 수정된 사항이 반영이 된다.

반드시 param이라는 파라미터를 줘야한다.

 

@GetMapping("/t1")
public String test1(@RequestParam String param){
    return "반갑습니다. 스프링입니다.-param:" + param;
}

 

위와 같이 반드시 param을 주게 하기 위해 @RequestParam을 쓴다.

유효성 검사를 한 것(param이라는 파라미터값이 와야지만 실행될 수 있다)

파라미터가 없으면 오류 발생

 

 

 

 

 

아래 소스를 실행하니,

url에 입력한 var값이 화면에 출력되는 것을 볼 수 있다.

@GetMapping("/t3/{var}")
public String test3(@PathVariable String var){
    return "경로변수:"+var;
}

 

 

 

 

@GetMapping("/t4/{var}")
public String test4(@PathVariable String param){
    return "경로변수:"+param;
}

 

경로에 있는 {var}와 인자param이 다르면 문제가 생긴다.

이럴 때에는 아래와 같이 ("var")를 넣어주면 문제 없이 실행이 된다.

아래와 같은 유형이 있구나 를 알면 된다.

@GetMapping("/t4/{var}")
public String test4(@PathVariable("var") String param){
    return "경로변수:"+param;
}

 

 

@RequestParam과 @PathVariable 을 제대로 알고 있자.

 

 

 

 

 

 

 

반응형

'Spring' 카테고리의 다른 글

[Spring Boot] 게시판 만들기  (0) 2025.09.08
[Spring] kakao 로그인  (0) 2025.09.03
[Spring] 설정 및 게시글 작성  (2) 2025.09.01
[Spring] Spring이란? Spring 환경 설정  (1) 2025.09.01

댓글