Spring Framework와 차이점
스프링(Spring)은 프레임워크이며, 스프링 부트(Spring Boot)는 스프링 프레임워크를 기반으로 한 도구이다
스프링은 설정 파일을 작성해야 하지만, 스프링 부트는 자동 설정을 제공하여 간편하게 개발할 수 있다
또한, 스프링 부트는 내장 서버를 제공하여 쉽게 웹 애플리케이션을 실행할 수 있다
Spring은 스프링 프레임워크를 보다 세밀하게 제어하고자 하는 경우에, Spring Boot는 빠르고 간단하게 스프링 애플리케이션을 개발하고자 하는 경우에 사용된다
자동 구성의 내부 동작 방법
- 자동 구성(auto configuration)은 @SpringBootApplication 어노테이션에서 부터 시작
- @ComponentScan 어노테이션을 통해 개발자가 정의한 Component들이 Bean으로 먼저 등록되고 @EnableAutoConfiguration 어노테이션으로 인해 AutoConfiguration이 동작하여 애플리케이션 구성에 필요한 추가 Bean들을 읽어서 등록하게 된다
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters= {@Filter(type= FilterType.CUSTOM, classes= TypeExcludeFilter.class),
@Filter(type= FilterType.CUSTOM, classes= AutoConfigurationExcludeFilter.class)})
public @interface SpringBootApplication {
- @EnableAutoConfiguration 어노테이션 내부에서 AutoConfigurationImportSelector 클래스를 import
- AutoConfigurationImportSelector 클래스에서는 자동 구성할 후보 빈들을 불러와 제외되거나 중복된 빈들을 제거하는 작업을 거친 후 자동 구성할 빈들을 반환
- META-INF/spring/org.springframework.autoconfigure.AutoConfiguration.imports 파일에 있는 146개의 AutoConfiguration 클래스들의 경로가 포함된 풀 네임을 가져와 설정 정보로 선택
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @iinterface EnableAutoConfiguration {
728x90
반응형
'Java & Kotlin > Spring' 카테고리의 다른 글
Spring @Transaction (0) | 2025.01.14 |
---|---|
Spring Filter & Interceptor (0) | 2025.01.13 |
Spring JPA (0) | 2025.01.12 |
Spring Framework? (0) | 2025.01.10 |