(instantiated untuk kemusnahan)
Spring dari fail konfigurasi
(@configuration), fail XML atau imbasan komponen (@component)BeanDefinitionRegistry#registerBeanDefinition()
Fungsi konstruktif adalah instantiated
InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation()
(
Ini berlaku sebelum sebelum suntikan . BeanNameAware#setBeanName(String name)
BeanNameAware
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!"); } }
<置> Tetapkan persekitaran BeanFactoryAware#setBeanFactory(BeanFactory factory)
(
public class MyBean implements BeanFactoryAware { @Override public void setBeanFactory(BeanFactory beanFactory) { System.out.println("BeanFactory Set!"); } }
)
public class MyBean implements BeanNameAware { @Override public void setBeanName(String name) { System.out.println("Bean Name Set: " + name); } }
<置> Tetapkan loader sumber (ResourceLoaderAware#setResourceLoader(ResourceLoader loader)
Jika Bean memerlukan untuk menerbitkan peristiwa ApplicationEventPublisherAware#setApplicationEventPublisher(ApplicationEventPublisher publisher)
, kaedah ini akan dipanggil.
ContextRefreshedEvent
pengantarabangsaan (i18n) untuk menyokong , Spring akan menyuntik MessageSource.
MessageSourceAware#setMessageSource(MessageSource source)
<例> Contoh: Benarkan akses dinamik ke ApplicationContextAware#setApplicationContext(ApplicationContext ctx)
kacang lain, tetapan alam sekitar, dan lain -lain
ServletContextAware#setServletContext(ServletContext ctx)
BeanPostProcessor#postProcessBeforeInitialization()
InitializingBean
afterPropertiesSet()
<始> selepas post -treatment posting @PostConstruct
@Bean
kemudian init-method
Ubah suai kacang. public class MyBean implements BeanClassLoaderAware { @Override public void setBeanClassLoader(ClassLoader classLoader) { System.out.println("ClassLoader Set!"); } }
BeanPostProcessor#postProcessAfterInitialization()
<毁> rawatan sebelum dimusnahkan
( membolehkan membersihkan sebelum memusnahkan .
DestructionAwareBeanPostProcessor#postProcessBeforeDestruction()
akan dipanggil.
DisposableBean
destroy()
DisposableBean
<定> custom destroy()
kaedah (kaedah pilihan) public class MyBean implements BeanNameAware { @Override public void setBeanName(String name) { System.out.println("Bean Name Set: " + name); } }
@PreDestroy
DisposableBean
(jika ditakrifkan dalam ) public class MyBean implements BeanClassLoaderAware { @Override public void setBeanClassLoader(ClassLoader classLoader) { System.out.println("ClassLoader Set!"); } }
, Ringkasan Proses Lengkap (Perintah Akhir) ?
destroy-method
@Bean
(
new Bean()
setBeanName()
(BeanNameAware
setBeanClassLoader()
/ BeanClassLoaderAware
setBeanFactory()
BeanFactoryAware
setEnvironment()
EnvironmentAware
setEmbeddedValueResolver()
(EmbeddedValueResolverAware
setResourceLoader()
ResourceLoaderAware
setApplicationEventPublisher()
ApplicationEventPublisherAware
setMessageSource()
MessageSourceAware
Saya doakan pengekodan gembira! ?Atas ialah kandungan terperinci Spring-: Spring-Bean-Lifecycle-Execution-Order. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!