Spring MVC
해야할 관심사를 기준으로 컴포넌트들을 분리시킨 구조
- Model: 자바 객체 또는 Pojo로 데이터를 담고 있음
- View: 모델이 담고 있는 데이터를 시각적으로 보여주는 역할
- Controller: 모델과 뷰를 연결하기 위한 매개체. 사용자의 요청을 받아 모델의 상태를 변경해주고 그에 따른 뷰를 업데이트 해줌
spring boot 쓰는 이유
- 자주 사용되는 라이브러리들의 버전 관리 자동화
- AutoConfig로 복잡한 설정 자동화
- 내장 웹서버 제공
- 실행 가능한 JAR로 개발 가능
spring의 여러 프로젝트 중 하나의 프로젝트로서 다음과 같은 주요 기능을 제공함.
- SpringApplication을 통한 손쉬운 실행
- Auto Configuration
- 쉬운 외부 환경 설정 - Properties, YAML, Command Line 설정 등등
- 프로파일을 통한 실행환경 관리
- Packaging Executable Jar
- Developer Tools
AutoConfiguration 원리
- @SpringApplication 어노테이션에서 시작됨
- @ComponentScan 어노테이션을 통해 개발자가 정의한 Component들이 먼저 Bean으로 등록됨
- @EnableAutoConfiguration 어노테이션을 통해 AutoConfiguration이 동작하여 추가로 필요한 Bean들을 읽어와서 등록함
- AutoConfigurationImportSelector 클래스의 내부 메서드가 동작하여 자동 구성할 후보 빈들을 불러와서 특정 조건(특정 빈의 존재 여부, 특정 class의 존재 여부, JVM 버전 일치 여부 등등)을 만족하지 않거나, 중복된 빈들을 제거하는 작업을 거친 후 남은 빈들을 반환
- 특정 조건 이란? https://wildeveloperetrain.tistory.com/290
Reference
'Backend > Spring Boot' 카테고리의 다른 글
VO, Entity, DTO, DAO (0) | 2024.03.10 |
---|---|
IoC 컨테이너 & DI (0) | 2024.03.10 |
Servlet (0) | 2024.03.10 |
Filter vs Interceptor (0) | 2024.03.10 |