1. 스프링 부트의 자동 구성이란?
- 스프링 부트에서는 애플리케이션이 최소한의 설정만으로도 실행되게 여러 부분을 자동으로 구성
- 추후 개발 시 내가 구성하지 않은 부분인데 스프링에서 자도응로 어떻게 구성했는지 확인할 상황 오기때문에 알아둬야함!
- 스프링부트는 서버 시작 시 구성 파일 읽어와서 설정 == 자동 설정
=>META-INF / spring.factories 파일
2. spring.factories 파일
spring-boot-autoconfigure/spring.factories 검색 -> 첫번째 파일 실행
< spring.factories 파일>
# Initializers
org.springframework.context.ApplicationContextInitializer=\
org.springframework.boot.autoconfigure.SharedMetadataReaderFactoryContextInitializer,\
org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener
# Application Listeners
org.springframework.context.ApplicationListener=\
org.springframework.boot.autoconfigure.BackgroundPreinitializer
# Environment Post Processors
org.springframework.boot.env.EnvironmentPostProcessor=\
org.springframework.boot.autoconfigure.integration.IntegrationPropertiesEnvironmentPostProcessor
# Auto Configuration Import Listeners
org.springframework.boot.autoconfigure.AutoConfigurationImportListener=\
org.springframework.boot.autoconfigure.condition.ConditionEvaluationReportAutoConfigurationImportListener
# Auto Configuration Import Filters
org.springframework.boot.autoconfigure.AutoConfigurationImportFilter=\
org.springframework.boot.autoconfigure.condition.OnBeanCondition,\
org.springframework.boot.autoconfigure.condition.OnClassCondition,\
org.springframework.boot.autoconfigure.condition.OnWebApplicationCondition
# Failure analyzers
org.springframework.boot.diagnostics.FailureAnalyzer=\
org.springframework.boot.autoconfigure.data.redis.RedisUrlSyntaxFailureAnalyzer,\
org.springframework.boot.autoconfigure.diagnostics.analyzer.NoSuchBeanDefinitionFailureAnalyzer,\
org.springframework.boot.autoconfigure.flyway.FlywayMigrationScriptMissingFailureAnalyzer,\
org.springframework.boot.autoconfigure.jdbc.DataSourceBeanCreationFailureAnalyzer,\
org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer,\
org.springframework.boot.autoconfigure.jooq.NoDslContextBeanFailureAnalyzer,\
org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryBeanCreationFailureAnalyzer,\
org.springframework.boot.autoconfigure.r2dbc.MissingR2dbcPoolDependencyFailureAnalyzer,\
org.springframework.boot.autoconfigure.r2dbc.MultipleConnectionPoolConfigurationsFailureAnalyzer,\
org.springframework.boot.autoconfigure.r2dbc.NoConnectionFactoryBeanFailureAnalyzer
# Template availability providers
org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider=\
org.springframework.boot.autoconfigure.freemarker.FreeMarkerTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.mustache.MustacheTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.thymeleaf.ThymeleafTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.web.servlet.JspTemplateAvailabilityProvider
# DataSource initializer detectors
org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector=\
org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializerDatabaseInitializerDetector
# Depends on database initialization detectors
org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitializationDetector=\
org.springframework.boot.autoconfigure.batch.JobRepositoryDependsOnDatabaseInitializationDetector,\
org.springframework.boot.autoconfigure.quartz.SchedulerDependsOnDatabaseInitializationDetector,\
org.springframework.boot.autoconfigure.session.JdbcIndexedSessionRepositoryDependsOnDatabaseInitializationDetector
=> 프로젝트에 쓰일 구성 후보들
-> 스프링 부트 시작 시 이 파일에 설정되어있는 클래스는 모두 불러옴
->이후에는 프로젝트에서 사용할 것들만 자동으로 구성해 등록
3. 자동 구성 확인해보기
~AutoConfigurarion : 자동 구성되는 클래스
~Properties : 속성값을 정의해놓은 클래스
=> 스프링부트에서는 빈이 자동으로 등록되고 구성됨
만약 자동 구성이 없다면?
=> 개발자가 특정 기술을 사용할 대마다 설정해야 하는 값을 모두 개발자가 직접 설정해줘야 된다!
아직 환경설정을 직접 해본 게 아니고 어떤 기능들이 있는지 써보지 않아서 와닿지는 않지만... 스프링보다 스프링부트가 훨씬 간편하고 편리해보이기는 하다.
이런 건 학원에서 배우지 못한 개념들인데 책을 보고 찬찬히 살펴보니 새로운 개념을 알게되어서 조금 설렌다.
'Spring Boot' 카테고리의 다른 글
[Spring Boot] 8. 스프링 부트 3 코드 이해하기 (0) | 2024.08.20 |
---|---|
[Spring Boot] 7. 스프링 부트3 과 자바 버전 (2) | 2024.08.19 |
[Spring Boot] 5. 스프링 부트 스타터 (Spring Boot Starter)살펴보기 (0) | 2024.08.19 |
[Spring Boot] 4. 예제1) @RestController, @GetMapping 으로 컨트롤러 만들기 + Spring Boot 동작원리 이해해보기 (0) | 2024.08.19 |
[Spring Boot] 3. 스프링(Spring)과 스프링부트(Spring Boot) (0) | 2024.08.19 |