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 |
댓글