Spring4-bean life cycle summary -7-

Here is my code - Part 1-6 run to completion log output

"C:\Program Files\Java\jdk1.8.0_171\bin\java.exe" "-javaagent:C:\IntelliJ IDEA 2018.1.4\lib\idea_rt.jar=54547:C:\IntelliJ IDEA 2018.1.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_171\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\rt.jar;C:\Users\lidong\Desktop\书籍\spring-study\Chapter_02\springf\target\classes;C:\Users\lidong\.m2\repository\junit\junit\4.11\junit-4.11.jar;C:\Users\lidong\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\lidong\.m2\repository\org\springframework\spring-context\4.3.14.RELEASE\spring-context-4.3.14.RELEASE.jar;C:\Users\lidong\.m2\repository\org\springframework\spring-beans\4.3.14.RELEASE\spring-beans-4.3.14.RELEASE.jar;C:\Users\lidong\.m2\repository\org\springframework\spring-core\4.3.14.RELEASE\spring-core-4.3.14.RELEASE.jar;C:\Users\lidong\.m2\repository\org\springframework\spring-expression\4.3.14.RELEASE\spring-expression-4.3.14.RELEASE.jar;C:\Users\lidong\.m2\repository\org\springframework\spring-test\4.3.14.RELEASE\spring-test-4.3.14.RELEASE.jar;C:\Users\lidong\.m2\repository\com\github\stefanbirkner\system-rules\1.16.0\system-rules-1.16.0.jar;C:\Users\lidong\.m2\repository\org\springframework\spring-aop\4.3.14.RELEASE\spring-aop-4.3.14.RELEASE.jar;C:\Users\lidong\.m2\repository\org\springframework\spring-aspects\4.3.14.RELEASE\spring-aspects-4.3.14.RELEASE.jar;C:\Users\lidong\.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;C:\Users\lidong\.m2\repository\org\aspectj\aspectjweaver\1.8.9\aspectjweaver-1.8.9.jar;C:\Users\lidong\.m2\repository\org\slf4j\slf4j-log4j12\1.7.25\slf4j-log4j12-1.7.25.jar;C:\Users\lidong\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;C:\Users\lidong\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;C:\Users\lidong\.m2\repository\commons-lang\commons-lang\2.5\commons-lang-2.5.jar;C:\Users\lidong\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;C:\Users\lidong\.m2\repository\xml-apis\xml-apis\1.0.b2\xml-apis-1.0.b2.jar;C:\Users\lidong\.m2\repository\org\apache\mina\mina-core\2.0.18\mina-core-2.0.18.jar;C:\Users\lidong\.m2\repository\com\alibaba\fastjson\1.2.49\fastjson-1.2.49.jar;C:\Users\lidong\.m2\repository\org\jeewx\jeewx-api\1.2.0\jeewx-api-1.2.0.jar;C:\Users\lidong\.m2\repository\commons-beanutils\commons-beanutils\1.7.0\commons-beanutils-1.7.0.jar;C:\Users\lidong\.m2\repository\com\baidu\bcs\baidu-sdk\1.4.5\baidu-sdk-1.4.5.jar;C:\Users\lidong\.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;C:\Users\lidong\.m2\repository\commons-chain\commons-chain\1.2\commons-chain-1.2.jar;C:\Users\lidong\.m2\repository\commons-codec\commons-codec\1.6\commons-codec-1.6.jar;C:\Users\lidong\.m2\repository\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;C:\Users\lidong\.m2\repository\commons-logging\commons-logging\1.0.4\commons-logging-1.0.4.jar;C:\Users\lidong\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.8.4\jackson-mapper-asl-1.8.4.jar;C:\Users\lidong\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.8.4\jackson-core-asl-1.8.4.jar;C:\Users\lidong\.m2\repository\net\sf\json-lib\json-lib\2.1\json-lib-2.1-jdk15.jar;C:\Users\lidong\.m2\repository\net\sf\ezmorph\ezmorph\1.0.3\ezmorph-1.0.3.jar;C:\Users\lidong\.m2\repository\org\apache\poi\poi\3.9\poi-3.9.jar;C:\Users\lidong\.m2\repository\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;C:\Users\lidong\.m2\repository\org\jdom\jdom\1.1\jdom-1.1.jar;C:\Users\lidong\.m2\repository\org\freemarker\freemarker\2.3.19\freemarker-2.3.19.jar;C:\Users\lidong\.m2\repository\com\google\zxing\core\3.1.0\core-3.1.0.jar;C:\Users\lidong\.m2\repository\com\google\zxing\javase\3.0.0\javase-3.0.0.jar;C:\Users\lidong\.m2\repository\org\jeecgframework\alipay-sdk-java20161012120106\1.0\alipay-sdk-java20161012120106-1.0.jar" com.ooo.App
现在开始初始化容器
[org.springframework.context.support.ClassPathXmlApplicationContext]Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@26f0a63f: startup date [Tue Jun 11 17:12:46 CST 2019]; root of context hierarchy
[org.springframework.beans.factory.xml.XmlBeanDefinitionReader]Loading XML bean definitions from URL [file:/C:/Users/lidong/Desktop/%e4%b9%a6%e7%b1%8d/spring-study/Chapter_02/springf/target/classes/META-INF/beans/beans.xml]
--------------【Bean工厂后置处理器】【MyBeanFactoryPostProcessor】构造器!!!
【二】【bean标签解析BeanDefinition阶段】【Bean工厂后置处理器】【MyBeanFactoryPostProcessor】【方法】postProcessBeanFactory
【二】【bean标签解析BeanDefinition阶段】【Bean工厂后置处理器】设置person:phone为110
--------------【统一处理器】【BeanPostProcessor】【构造器】!!!
--------------【实例化Bean后置处理器】类构造器!!!
【三】【实例化阶段(IOC)】【实例化Bean后置处理器】【方法】postProcessBeforeInstantiation
【三】【实例化阶段(IOC)】【构造器】调用Person的构造器实例化!!!
【四】【初始化阶段 DI】【实例化Bean后置处理器】【方法】postProcessPropertyValues方法
【四】【初始化阶段 DI】【SET】【注入属性】注入属性address
【四】【初始化阶段 DI】【SET】【注入属性】注入属性name
【四】【初始化阶段 DI】【SET】【注入属性】注入属性phone
【四】【初始化阶段 DI】【BeanNameAware接口】调用BeanNameAware.setBeanName()
【四】【初始化阶段 DI】【BeanFactoryAware接口】调用BeanFactoryAware.setBeanFactory()
【四】【初始化阶段 DI】【统一处理器】【BeanPostProcessor】【方法】postProcessBeforeInitialization对属性进行更改!
【四】【初始化阶段 DI】【InitializingBean接口】调用InitializingBean.afterPropertiesSet()
【四】【初始化阶段 DI】【init-method】调用<bean>的init-method属性指定的初始化方法
【四】【初始化阶段 DI】【统一处理器】【BeanPostProcessor】【方法】postProcessAfterInitialization对属性进行更改!
【四】【初始化阶段 DI】【实例化Bean后置处理器】【方法】postProcessAfterInitialization
容器初始化成功
Person [address=广州, name=张三, phone=110]
现在开始关闭容器!
[org.springframework.context.support.ClassPathXmlApplicationContext]Closing org.springframework.context.support.ClassPathXmlApplicationContext@26f0a63f: startup date [Tue Jun 11 17:12:46 CST 2019]; root of context hierarchy
【四】【初始化阶段 DI】【DiposibleBean接口】调用DiposibleBean.destory()
【四】【初始化阶段 DI】【destroy-method】调用<bean>的destroy-method属性指定的初始化方法

Process finished with exit code 0

to sum up:

       [Post-processor] Bean plants container after the initialization operation [BeanFactoryPostProcessor]

       [Postprocessor instantiated] Bean container for an operation on all Bean instantiation [InstantiationAwareBeanPostProcessorAdapter]

       [Builder] 

       [SET] injection    

       【<bean>的init-method】

       [Processor] unified a container operation initializes all Bean [BeanPostProcessor]

 

Bean initialization phase    

Bean's life cycle

Spring container initialization procedure substantially bean

Defined bean tag The tag resolution into the BeanDefinition bean  >  constructor call instantiated (the IOC)  >   Properties trustworthy initialization injection (DI) 

 

Bean scopes 

Guess you like

Origin blog.csdn.net/lidongliangzhicai/article/details/91449896