λΉμ μ½λ λ°©λ²
ConfigurableApplicationContext λ₯Ό μ ννλ λ°©λ²
SpringApplication μ run μμ
createApplicationContext() λ₯Ό ν΅ν΄ μ μ λλ€.
createApplicationContext() μμλ SpringApplication μ΄ μμ±λ λ κΈ°λ³Έκ°μΌλ‘ μμ±λ ApplicationContextFactory λ‘ applicationContext λ₯Ό λ§λ λ€. λ§λ€ λ webApplicationType(enum) μ μΈμλ‘ μ£Όλλ°, μ΄ μΈμλ SpringApplication μ μμ±μμμ deduceFromClasspath() λ©μλλ₯Ό ν΅ν΄ μ€μ λλ€.
ν΄λΉ λ©μλμμλ DispatcherHandler κ° class loader μ μκ³ , DispatcherServlet κ³Ό ServletContainer κ° μμ΄μΌ REACTIVE λ₯Ό λ°ννκ³ μλλ©΄ SERVLET μ λ°ννλ€.
ApplicationContextFactory μ ꡬν체λ DefaultApplicationContextFactory μΈλ°, μ¬κΈ°μ create λ₯Ό νλ€. κ²°κ³Όμ μΌλ‘ context λ AnnotationConfigReactiveWebServerApplicationContext μ΄ μ μ λλ€.
λΉμ μΈμ λ±λ‘λ κΉ
β’
SpringApplication.createApplicationContext()
β¦
DefaultApplicationContextFactory.create()
β¦
DefaultApplicationContextFactory.getFromSpringFactories()
β¦
ReactiveWebServerApplicationContextFactory.create(WebApplicationType)
β¦
ReactiveWebServerApplicationContextFactory.createContext()
β¦
AnnotationConfigReactiveWebServerApplicationContext()
β¦
initAnnotationConfigReactiveWebServerApplicationContext. newAnnotatedBeanDefinitionReader(this) β this = ACRWSAC
β¦
init AnnotatedBeanDefinitionReader.AnnotationConfigUtils.registerAnnotationConfigProcessors()
β¦
AnnotationConfigUtils.registerAnnotationConfigProcessors()
β¦
AnnotationConfigUtils.registerPostProcessor()
β¦
registry.registerBeanDefinition() registry β GenericApplicationContext
β¦
GenericApplicationContext.registerBeanDefinition()
β¦
DefaultListableBeanFactory.registerBeanDefinition()
λΉμ μ΄λμ λ±λ‘λ κΉ
DefaultListableBeanFactory μ registerBeanDefinition