Processo de criação de BeanFactory
Um, obtenha o subprocesso BeanFactory
O diagrama de tempo é o seguinte
Este artigo faz referência a "Spring Advanced Source Notes", alunos que precisam adicionar assistente VX: C18173184271 acesso gratuito
Artigo de destaque da entrevista de primavera clique aqui! ! !
Dois, análise de carregamento BeanDefinition e subprocesso de registro
1. Este subprocesso envolve as seguintes etapas principais
Posicionamento de recursos : refere-se ao BeanDefinition
processo correto de posicionamento de recursos. De modo geral, é para localizar Javabean
o arquivo XML que define as informações e encapsulá-lo em um objeto Resource .
Carregamento de BeanDefinition : a estrutura de dados definida pelo usuário é Javabean
representada como a estrutura de dados interna do contêiner IoCBeanDefinition
.
Registrar BeanDefinition no contêiner IoC
2. Análise de processo
1 a ETAPA : AbstractRefreshableApplicationContext#refreshBeanFactory
método de entrada do subprocesso na
Etapa 2 : turn chamar mais de uma classe do método loadBeanDefinitions -> AbstractXmlApplicationContext
-> AbstractBeanDefinitionReader
-> XmlBeanDefinitionReader
realizada até XmlBeanDefinitionReader
o método doLoadBeanDefinitions da
Etapa 3 : Focamos na XmlBeanDefinitionReader
classe de observação que o método registerBeanDefinitions produz durante tempos de carregamento pesado chamada, localizamos o último
aqui nos concentramos em duas áreas: um método createRederContext , é uma DefaultBeanDefinitionDocumentReader
classe do método registerBeanDefinitions , primeiro digite o método createRederContext, veja
que podemos ver que aqui o Spring terminou a primeira NamespaceHandlerResolver
inicialização.
Em seguida, inserimos o método registerBeanDefinitions para rastrear e chamar o método DefaultBeanDefinitionDocumentReader # registerBeanDefinitions.
Insira o método doRegisterBeanDefinitions.
Insira o método parseBeanDefinitions.
Insira o método parseDefaultElement.
Insira o método processBeanDefinition.
Neste ponto, o processo de registro acabou. BeanDefinition
após o objeto em um mapa, com BeanFactory
base na Map
organização estrutural destes BeanDefinition
são.
Você pode DefaultListableBeanFactory
ver a definição deste mapa em
/** Map of bean definition objects, keyed by bean name. */
private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<>(256);
3. Diagrama de tempo
Se você precisa desta versão completa de "Spring Advanced Source Notes", você só precisa apoiar meu artigo.
Muito suporte, você pode obter informações gratuitamente, após três anos consecutivos (promessa: 100% gratuito)
Canal de início rápido: Adicionar assistente VX: C18173184271 Obtenha-o gratuitamente! Cheio de sinceridade! ! !
Artigo de destaque da entrevista de primavera clique aqui! ! !