leehyeon-dv 님의 블로그
스프링 부트 3 둘러보기 본문
01. 📌TestController.java 파일을 만들어 코드 입력
(/test GET요청시 "test"문자열 반환)
@RestController
public class TestController {
@GetMapping("/test")
public String test() {
return "test";
}
}
02.📌 실행
localhost(현재사용중인 컴퓨터) : 8080(포트번호) / test(경로)
이처럼 웹 브라우저에서 요청할 주소에 맞게 코드를 작성하면 웹 사이트나 웹 애플리케이션을 개발 할 수 있다
✏️스프링 부트 스타터
의존성이 모여있어 필요한 기능을 간편하게 설정할 수 있다
spring-boot-starter-web | Spring MVC를 사용해 RESTful 웹 서비스를 개발할때 필요한 의존성 모음 |
spring-boot-starter-test | 스프링 애플리케이션을 테스트하기 위해 필요한 의존성 모음 |
spring-boot-starter-validation | 유효성 검사를 위해 필요한 의존성 모음 |
spring-boot-starter-actuator | 모니터링을 위해 애플리케이션에서 제공하는 다양한 정보를 제공하기 쉽게하는 의존성 모음 |
spring-boot-starter-data-jpa | ORM을 사용하기 위한 인터페이스의 모음인 JPA를 더 쉽게 사용하기 위한 의존성 모음 |
실제 설정되어있는 스타터보기
🔻build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
🔻IDE 가장 오른쪽에 [Gradle]에 dependencies항목에 compileClasspath같은 것을 보면 web 스타터를 확인가능하다
이 스타터는 spring MVC를 사용해 RESTful을 포함한 웹 애플리케이션 개발하는데 사용한다
📌자동구성
스프링 부트는 애플리케이션이 최소한의 설정만으로도 실행되게 자동으로 여러 부분을 구성한다
( 나중에 개발 시에 구성하지 않은 부분인데 스프링에서 자동으로 어떻게 구성했는지 확인할때를 위해 알아야함)
spring-boot-autoconfigure/spring.factories를 검색한다
이렇게 보이는 게 프로젝트에 쓰일 구성 후보들입니다
스프링부트를 시작할 때 이 파일에 설정되어있는 클래스를 모두 불러오고 프로젝트에서 사용할 것들만 자동으로 구성해 등록한다
📌스프링 부트와 자바 버전
스프링 부트 3는 자바 17버전 이상을 사용해야합니다
- 텍스트 블록 = 이전에는 여러줄을 작성하려면 \n을 추가해야했지만 """로 감싼 텍스트를 사용하면 여러줄의 텍스트 표현가능하다
String query11="SELECT * FORM \"item\"\n" +
"Where \"status\" = \"ON_sale\"\n" +
"order by \"price\";\n";
String query17 = """
SELECT * FORM "item"
Where "status" = "ON_sale
order by "price";
""";
가독성이 좋아짐을 볼 수 있다
- formatted() 메서드 = 값을 파싱하기위한 메서드
String textBlock17 = """
{
"id": %d
"name" : %s,
}
""".formatted(2, "juice");
- 레코드 = 데이터 전달을 목적으로 하는 객체를 더 빠르고 간편하게 만들기 위한 기능
*상속을 할수 없고 파라미터에 정의한 필드는 private final로 정의된다
record Item(String name, int price){ }
Item juice = new Item("juice", 3000);
juice.price();
- 패턴매칭 = 타입 확인을 위해 사용하던 instanceof 키워드를 좀 더 쉽게 사용할 수 있게 해준다
//11버전
if ( o instanceof Integer){
Integer i = (Integer) o;
}
//17버전
if (o instanceof Integer i) {
}
- 자료형에 맞는 case 처리
switch-case 문으로 자료형에 맞게 case 처리를 할 수도 있다
static double getIntegerValue(Object o){
return switch (o) {
case Double d -> d.intValue();
case Float f -> f.intValue();
case String s -> Integer.parseInt(s);
default -> 0d;
};
}
'spring > spring 이론' 카테고리의 다른 글
스프링 부트와 테스트 (1) | 2024.12.21 |
---|---|
스프링 부트 3 코드&구조 이해하기 (0) | 2024.12.21 |
스프링 부트 시작하기 (0) | 2024.12.20 |
백엔드 개발자가 알아두면 좋은 지식 (1) | 2024.12.19 |
테스트 코드 (4) | 2024.11.28 |