(instancié à la destruction)
Spring à partir du fichier de configuration
(@configuration), du fichier XML ou de la numérisation des composants (@Component)BeanDefinitionRegistry#registerBeanDefinition()
La fonction constructive est instanciée
InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation()
(.
Cela s'est produit avant avant l'injection BeanNameAware#setBeanName(String name)
.
BeanNameAware
dans le contexte de l'application. setBeanName()
public class MyBean implements BeanNameAware { @Override public void setBeanName(String name) { System.out.println("Bean Name Set: " + name); } }
BeanClassLoaderAware#setBeanClassLoader(ClassLoader classLoader)
public class MyBean implements BeanClassLoaderAware { @Override public void setBeanClassLoader(ClassLoader classLoader) { System.out.println("ClassLoader Set!"); } }
BeanFactoryAware#setBeanFactory(BeanFactory factory)
public class MyBean implements BeanFactoryAware { @Override public void setBeanFactory(BeanFactory beanFactory) { System.out.println("BeanFactory Set!"); } }
<置> Définissez l'analyse de valeur intégrée EnvironmentAware#setEnvironment(Environment environment)
(
public class MyBean implements BeanNameAware { @Override public void setBeanName(String name) { System.out.println("Bean Name Set: " + name); } }
<置> Définissez le chargeur de ressources () ResourceLoaderAware#setResourceLoader(ResourceLoader loader)
)
ApplicationEventPublisherAware#setApplicationEventPublisher(ApplicationEventPublisher publisher)
Si Bean a besoin de
ContextRefreshedEvent
Si Bean a besoin de Internationalisation (I18N) pour soutenir MessageSourceAware#setMessageSource(MessageSource source)
, le printemps injectera MessageSource.
Si Bean doit accéder à l'ensemble de l'application SpringContext , cette méthode sera appelée. ApplicationContextAware#setApplicationContext(ApplicationContext ctx)
, utilisées pour accéder aux informations de contexte Web . ServletContextAware#setServletContext(ServletContext ctx)
haricot modifié.
BeanPostProcessor#postProcessBeforeInitialization()
<的> Custom
InitializingBean
afterPropertiesSet()
@PostConstruct
@Bean
) init-method
public class MyBean implements BeanClassLoaderAware { @Override public void setBeanClassLoader(ClassLoader classLoader) { System.out.println("ClassLoader Set!"); } }
BeanPostProcessor#postProcessAfterInitialization()
.
)
DestructionAwareBeanPostProcessor#postProcessBeforeDestruction()
permet de nettoyer avant la destruction
DisposableBean
Si Bean est implémenté, destroy()
sera appelé.
DisposableBean
destroy()
public class MyBean implements BeanNameAware { @Override public void setBeanName(String name) { System.out.println("Bean Name Set: " + name); } }
Appelez avant le haricot détruit . @PreDestroy
DisposableBean
<定> Custom public class MyBean implements BeanClassLoaderAware { @Override public void setBeanClassLoader(ClassLoader classLoader) { System.out.println("ClassLoader Set!"); } }
destroy-method
@Bean
trois, le résumé complet du processus (ordre final)
()
new Bean()
setBeanName()
BeanNameAware
(setBeanClassLoader()
(BeanClassLoaderAware
) setBeanFactory()
) BeanFactoryAware
setEnvironment()
EnvironmentAware
(setEmbeddedValueResolver()
(EmbeddedValueResolverAware
) setResourceLoader()
ResourceLoaderAware
setApplicationEventPublisher()
ApplicationEventPublisherAware
setMessageSource()
MessageSourceAware
setApplicationContext()
(ApplicationContextAware
) setServletContext()
) ServletContextAware
postProcessBeforeInitialization()
BeanPostProcessor
@PostConstruct
Plus d'informations sur Interface et méthodes, veuillez visiter: afterPropertiesSet()
https://www.php.cn/link/6759d0996526ddc8e27aa550f0b806b1 postProcessAfterInitialization()
Je vous souhaite un codage heureux! ? BeanPostProcessor
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!