
'스프링 부트3 백엔드 개발자 되기' 책을 참고하며 작성 중 입니다.
Before..
앞서 언급한 서버 성능, 안정성, 보안을 매우 높은 수준으로 제공하여 개발에만 집중할 수 있게 도와주는 프레임워크
스프링 프레임워크를 더 쉽고 빠르게 이용할 수 있도록 만들어주는 도구
개발에 필요한 환경 수동 설정 / 자동 설정
별도로 수동 설정 / 내장형 서버를 제공하여 설정 X
- Bean : 스프링 컨테이너가 생성하고 관리하는 객체
@Component 애너테이션을 붙여 Bean에 등록- 스프링 컨테이너 : Bean을 생성, 관리
IoC (Inversion of Control) : 제어의 역전
DI (Dependency Injection) : 의존성 주입
AOP (Aspect Oriented Programming) : 관점 지향 프로그래밍
PSA (Portable Service Abstraction) : 이식 가능한 서비스 추상화
의존성이 모여 있는 그룹
필요한 기능을 간편하게 설정 가능
spring-boot-starter-{작업유형}
애플리케이션이 최소한의 설정만으로도 실행되게 여러 부분을 자동으로 구성
META-INF 에 있는 spring.factories 파일
텍스트 블록 """ 지원
formatted() 메서드
레코드
상속을 할 수 없고 private final로 파라미터 정의
Getter 정의를 하지 않아도 된다.
record Item(String name, int price){
//파라미터가 private final로 정의된다.
}
Item juice = new Item("juice", 3000);
juice.price(); //3000
패턴 매칭
자료형에 맞는 case 처리
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication //스프링 부트 사용에 필요한 기본 설정
public class SpringBootDeveloperApplication {
public static void main(String[] args){
SpringApplication.run(SpringBootDeveloperApplication.class, args);
//메인 클래스로 사용할 클래스 , args -> 커맨드 라인의 인수들 전달
}
}
...
@SpringBootConfiguration //: 스프링 부트 관련 설정
@EnableAutoConfiguration
//: 스프링 부트의 메타 파일을 읽고 정의된 설정들을 자동으로 구성
@ComponentScan
(excludeFilters =
{ @Filter(type = FilterType.CUSTOM,
classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM,
classes = AutoConfigurationExcludeFilter.class) })
//@ComponentScan : 사용자가 등록한 빈을 읽고 등록하는 애너테이션
//@Component를 가진 클래스들을 찾아 빈으로 등록
public @interface SpringBootApplication {
...
해당 애너테이션을 가진 클래스들은 모두 빈으로 등록
@Controller, @RestController, @Configuration, @Repository, @Service 모두 @Component 애너테이션을 가지고 있음