Lab: Arbitrary object injection in PHP:PHP中任意物件的注入(反序列化漏洞)
阿新 • • 發佈:2021-08-23
一、Spring Bean的生命週期總共分為4個階段
一階段:Bean的例項化和DI(dependency injection)
二階段:檢查Spring Awareness
三階段:建立bean生命週期回撥
四階段:銷燬bean生命週期回撥
二、4個階段
1、Bean的例項化和DI(dependency injection)1.1 掃描XML檔案、註釋類(例:@Component)、配置類中bean的定義(@Configuration -> @Bean) 1.2 建立Bean例項 1.3 注入Bean依賴項(呼叫setter或構造方法,為自動裝配欄位設定值) 2、 檢查Spring Awareness(以下只是幾個例子)2.1 如果Bean實現了BeanNameAware介面,則呼叫setBeanName(...); 2.2 如果Bean實現了BeanClassLoaderAware介面,則呼叫setBeanClassLoader(...); 2.3 如果Bean實現了ApplicationContextAware介面,則呼叫setApplicationContext(...);
3、建立Bean生命週期回撥
3.1 @PostConstruct註釋,註釋回撥的方法上,1、2階段Bean建立完畢即呼叫; 3.2 實現InitializingBean介面,呼叫afterPropertiesSet(...),1、2階段Bean建立完畢即呼叫; 3.3 Bean定義中包含init-method(在XML中標籤<bean>的屬性)或@Bean(initMethod="...")指定的方法,1、2階段Bean建立完畢即呼叫;
4、銷燬bean生命週期回撥
4.1 @PreDestroy註釋,註釋回撥方法上,銷燬Bean之前呼叫; 4.2 實現DisposableBean介面,呼叫destroy(...),銷燬Bean之前呼叫; 4.3 Bean定義中包含destroy-method(在XML中標籤<bean>的屬性)或@Bean(destroyMethod="...")指定的方法,銷燬Bean之前呼叫;
————————————————
原文連結:https://blog.csdn.net/u014259503/article/details/90438294