엔터프라이즈 애플리케이션
: 대규모 복잡한 데이터를 관리하는 애플리케이션
스프링을 더 쉽게 만드는 스프링부트
: 비즈니스 로직에만 집중해
WAS(Web Application Server)가 내장
되어 있음 -> 독립적 실행 가능
Spring Boot Starter 제공
: 빌드 구성을 단순화XML 설정 X
: 자바코드로 모두 작성 가능JAR 이용해서 자바 옵션만으로 배포 쌉가능
Spring Actuator 제공
: 애플리케이션의 모니터링 및 관리
스프링과 스프링부트 차이
스프링
: 애플리케이션 개발에 필요한 환경 수동 설치
스프링 부트
: 스프링 코어, 스프링 MVC의 모든 기능을 자동 로드 + 수동으로 개발환경 구성 X
내장 WAS 유뮤
내장 WAS 함유
-> jar 파일 만들면 별도로 WAS 설치 필요 없이 애플리케이션 실행 쌉가능
스프링 | 스프링 부트 | |
---|---|---|
목적 | 엔터프라이즈 애플리케이션 개발 더 쉽게 | 스프링의 개발 더 빠르고 쉽게 |
설정 파일 | 개발자 수동으로 구성 | 자동 구성 |
XML | 일부 파일은 XML로 직접생성하고 관리 | 사용 X |
인메모리 DB 지원 | 지원X | 인메모리 DB여서 자동설정 지원 |
서버 | 프로젝트를 띄우는 서버를 별도로 수동 설정 | 내장형 서버(별도 수동설정 X) |
IoC : Inversion of Control
제어의 역전
: 다른 객체를 직접 생성 or 제어 X -> 외부에서 관리를 하는 객체를 가져와 사용
하는 것스프링은 Spring Container가 객체를 관리, 제공하는 역할
DI : Dependency Injection
IoC를 구현하기 위해
사용하는 방법의존성 주입
의존
IoC 컨테이너(=Spring Container)에 Bean으로 객체를 등록해서 넣으면 스프링이 알아서 동적으로 ComponentScan해서 DI를 한다.
Spring Container
: Bean
이 생성되고 소멸되기까지의 생명주기를 관리
Bean
: Spring Container가 생성하고 관리하는 객체
Bean 등록방법
: @Component 추가
AOP, 관점지향 프로그래밍
부가관점을 분리 -> 핵심로직에 집중 == 관점 지향 프로그램ㅇ
이식 가능한 서비스 추상화
스프링에서 제공하는 다양한 기술들을 추상화해
개발자가 쉽게 사용하는 인터페이스http://localhost:8080/test
localhost
: IP8080
: Porttest
: 경로Spring Boot Starter : 의존성이 모여 있는 그룹
형태
: spring-boot-starter-{작업유형}
자동구성
: 애플리케이션이 최소한의 설정만으로도 실행되게 여러 부분을 자동으로 구성이거 없으면 개발자가 삽질로 해줘야함 ㅋㅋ
스프링 부트3와 자바 버전
텍스트 블록
String query17 = """
SELECT * FROM "items"
WHERE "status" = ON_SALE"
ORDER BY "price";
""";
formatted()메소드
String textBlock17 = """
{
"id": %d
"name": %s,
}
""".formatted(2, "juice");
레코드
record Item(String name, int price) {
// 파라미터가 private final로 정의
// getter 자동으로 생성
}
Item juice = new Item("juice", 3000);
juice.price(); // 3000
패턴 매칭 : i 바로 사용 가능
if (o instance Integer i) {
}
자료형에 맞는 case 처리
static double getIntegerVvalue(Object o) {
return switch(o) {
case Double d -> d.intValue();
case Float f -> f.intValue();
case String s -> Integer.parseInt(s);
dafault -> 0d;
};
}
Servlet, JPA의 네임 스페이스가 Jakarta로 대체
javax.* -> jakarta.*
GraalVM 기반의 스프링 네이티브 이미지 공식 지원
@SpringBootApplication
: 스프링부트의 시작점
@SpringBootApplication가 가지고 있는 중요한 어노테이션
@SpringBootConfiguration
: 스프링 부트 관련 설정, @Configuration을 상속해서 만듬
@ComponentScan
: 사용자가 등록한 Bean을 읽고 등록하는 어노테이션, 해당 어노테이션을 찾아 빈으로 등록하는 역할
어노테이션 | 설명 |
---|---|
@Configuration | 설정 파일 등록 |
@Repository | ORM 매칭 |
@Controller, @RestController | 라우터 |
@Service | 비즈니스 로직 |
@EnableAutoConfiguration
: 자동 구성 활성화
, spring.factories에서 봤던 것들을 전부 자동으로 활성화 시킴컨트롤러 살펴보기
@RestController
: @Controller + @ResponseBody
@Controller
: @Component 존재