在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Spring源码学习:手写简化版Spring框架,了解核心原理

Spring源码学习:手写简化版Spring框架,了解核心原理

一般编程问题

下载此实例

实例介绍

【实例简介】
small-spring:🌱《 Spring 手撸专栏》,本专栏以 Spring 源码学习为目的,通过手写简化版 Spring 框架,了解 Spring 核心原理。在手写的过程中会简化 Spring 源码,摘取整体框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:IOC、AOP、Bean生命周期等等
【实例截图】
【核心代码】
文件清单
└── small-spring-69efcc9835aac100fb99ad2046a75e0b58508233
    ├── docs
    │   ├── assets
    │   │   ├── css
    │   │   │   ├── gitalk.css
    │   │   │   └── vue.css
    │   │   ├── excel
    │   │   │   └── 简历.xlsx
    │   │   ├── img
    │   │   │   ├── Bean生命周期.drawio
    │   │   │   ├── Bean生命周期.png
    │   │   │   ├── bug-10-01.png
    │   │   │   ├── bugstack-md.png
    │   │   │   ├── HeadDiagram.png
    │   │   │   ├── pdf.png
    │   │   │   ├── spring-0-04.png
    │   │   │   ├── spring-10-02.png
    │   │   │   ├── spring-1-01.png
    │   │   │   ├── spring-1-02.png
    │   │   │   ├── spring-1-03.png
    │   │   │   ├── spring-1-04.png
    │   │   │   ├── spring-11-02.png
    │   │   │   ├── spring-12-02.png
    │   │   │   ├── spring-13-02.png
    │   │   │   ├── spring-14-02.png
    │   │   │   ├── spring-15-02.png
    │   │   │   ├── spring-16-02.png
    │   │   │   ├── spring-2-00.png
    │   │   │   ├── spring-2-01.png
    │   │   │   ├── spring-2-02.png
    │   │   │   ├── spring-3-01.png
    │   │   │   ├── spring-3-02.png
    │   │   │   ├── spring-3-03.png
    │   │   │   ├── spring-4-01.png
    │   │   │   ├── spring-4-02.png
    │   │   │   ├── spring-5-02.png
    │   │   │   ├── spring-6-03.png
    │   │   │   ├── spring-6-04.png
    │   │   │   ├── spring-7-03.png
    │   │   │   ├── spring-8-04.png
    │   │   │   └── spring-9-02.png
    │   │   ├── js
    │   │   │   ├── docsify.min.js
    │   │   │   ├── docsify-pagination.min.js
    │   │   │   ├── gitalk.min.js
    │   │   │   ├── md5.js
    │   │   │   ├── prism-bash.js
    │   │   │   ├── prism-java.min.js
    │   │   │   └── zoom-image.js
    │   │   ├── md
    │   │   │   ├── 简历模板-MD.md
    │   │   │   └── 简历模板-实习生.md
    │   │   ├── ppt
    │   │   │   └── 插图.pptx
    │   │   ├── visio
    │   │   │   └── 类图.vsdx
    │   │   ├── word
    │   │   │   └── 简历模板-MD.md
    │   │   └── xmind
    │   │       ├── Spring手撸专栏.xmind
    │   │       └── 第9章:Bean 生命周期.xmind
    │   ├── CNAME
    │   ├── _coverpage.md
    │   ├── favicon.ico
    │   ├── index.html
    │   ├── _media
    │   │   ├── bugstack-pdf.png
    │   │   ├── bugstack.png
    │   │   ├── fustack.png
    │   │   ├── icon.svg
    │   │   ├── onlinebook.svg
    │   │   ├── pdf.png
    │   │   ├── qrcode.png
    │   │   ├── tree.png
    │   │   ├── wechatcode.jpg
    │   │   └── wxbugstack.svg
    │   ├── notes
    │   │   └── 资料.md
    │   ├── README.md
    │   └── _sidebar.md
    ├── important.properties
    ├── LICENSE
    ├── README.md
    ├── small-spring-step-01
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── BeanDefinition.java
    │       │                   └── BeanFactory.java
    │       └── test
    │           └── java
    │               └── cn
    │                   └── bugstack
    │                       └── springframework
    │                           └── test
    │                               ├── ApiTest.java
    │                               └── bean
    │                                   └── UserService.java
    ├── small-spring-step-02
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   └── beans
    │       │                       ├── BeansException.java
    │       │                       └── factory
    │       │                           ├── BeanFactory.java
    │       │                           ├── config
    │       │                           │   ├── BeanDefinition.java
    │       │                           │   └── SingletonBeanRegistry.java
    │       │                           └── support
    │       │                               ├── AbstractAutowireCapableBeanFactory.java
    │       │                               ├── AbstractBeanFactory.java
    │       │                               ├── BeanDefinitionRegistry.java
    │       │                               ├── DefaultListableBeanFactory.java
    │       │                               └── DefaultSingletonBeanRegistry.java
    │       └── test
    │           └── java
    │               └── cn
    │                   └── bugstack
    │                       └── springframework
    │                           └── test
    │                               ├── ApiTest.java
    │                               └── bean
    │                                   └── UserService.java
    ├── small-spring-step-03
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   └── beans
    │       │                       ├── BeansException.java
    │       │                       └── factory
    │       │                           ├── BeanFactory.java
    │       │                           ├── config
    │       │                           │   ├── BeanDefinition.java
    │       │                           │   └── SingletonBeanRegistry.java
    │       │                           └── support
    │       │                               ├── AbstractAutowireCapableBeanFactory.java
    │       │                               ├── AbstractBeanFactory.java
    │       │                               ├── BeanDefinitionRegistry.java
    │       │                               ├── CglibSubclassingInstantiationStrategy.java
    │       │                               ├── DefaultListableBeanFactory.java
    │       │                               ├── DefaultSingletonBeanRegistry.java
    │       │                               ├── InstantiationStrategy.java
    │       │                               └── SimpleInstantiationStrategy.java
    │       └── test
    │           └── java
    │               └── cn
    │                   └── bugstack
    │                       └── springframework
    │                           └── test
    │                               ├── ApiTest.java
    │                               └── bean
    │                                   └── UserService.java
    ├── small-spring-step-04
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   └── beans
    │       │                       ├── BeansException.java
    │       │                       ├── factory
    │       │                       │   ├── BeanFactory.java
    │       │                       │   ├── config
    │       │                       │   │   ├── BeanDefinition.java
    │       │                       │   │   ├── BeanReference.java
    │       │                       │   │   └── SingletonBeanRegistry.java
    │       │                       │   └── support
    │       │                       │       ├── AbstractAutowireCapableBeanFactory.java
    │       │                       │       ├── AbstractBeanFactory.java
    │       │                       │       ├── BeanDefinitionRegistry.java
    │       │                       │       ├── CglibSubclassingInstantiationStrategy.java
    │       │                       │       ├── DefaultListableBeanFactory.java
    │       │                       │       ├── DefaultSingletonBeanRegistry.java
    │       │                       │       ├── InstantiationStrategy.java
    │       │                       │       └── SimpleInstantiationStrategy.java
    │       │                       ├── PropertyValue.java
    │       │                       └── PropertyValues.java
    │       └── test
    │           └── java
    │               └── cn
    │                   └── bugstack
    │                       └── springframework
    │                           └── test
    │                               ├── ApiTest.java
    │                               └── bean
    │                                   ├── UserDao.java
    │                                   └── UserService.java
    ├── small-spring-step-05
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   └── util
    │       │                       └── ClassUtils.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   └── bean
    │           │                       ├── UserDao.java
    │           │                       └── UserService.java
    │           └── resources
    │               ├── important.properties
    │               └── spring.xml
    ├── small-spring-step-06
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       └── ClassPathXmlApplicationContext.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   └── util
    │       │                       └── ClassUtils.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   ├── bean
    │           │                   │   ├── UserDao.java
    │           │                   │   └── UserService.java
    │           │                   └── common
    │           │                       ├── MyBeanFactoryPostProcessor.java
    │           │                       └── MyBeanPostProcessor.java
    │           └── resources
    │               ├── important.properties
    │               ├── springPostProcessor.xml
    │               └── spring.xml
    ├── small-spring-step-07
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── DisposableBean.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── InitializingBean.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── DisposableBeanAdapter.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       └── ClassPathXmlApplicationContext.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   └── util
    │       │                       └── ClassUtils.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   └── bean
    │           │                       ├── UserDao.java
    │           │                       └── UserService.java
    │           └── resources
    │               └── spring.xml
    ├── small-spring-step-08
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── Aware.java
    │       │                   │   │   ├── BeanClassLoaderAware.java
    │       │                   │   │   ├── BeanFactoryAware.java
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── BeanNameAware.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── DisposableBean.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── InitializingBean.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── DisposableBeanAdapter.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── ApplicationContextAware.java
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       ├── ApplicationContextAwareProcessor.java
    │       │                   │       └── ClassPathXmlApplicationContext.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   └── util
    │       │                       └── ClassUtils.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   └── bean
    │           │                       ├── UserDao.java
    │           │                       └── UserService.java
    │           └── resources
    │               └── spring.xml
    ├── small-spring-step-09
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── Aware.java
    │       │                   │   │   ├── BeanClassLoaderAware.java
    │       │                   │   │   ├── BeanFactoryAware.java
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── BeanNameAware.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── DisposableBean.java
    │       │                   │   │   ├── FactoryBean.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── InitializingBean.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── DisposableBeanAdapter.java
    │       │                   │   │   │   ├── FactoryBeanRegistrySupport.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── ApplicationContextAware.java
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       ├── ApplicationContextAwareProcessor.java
    │       │                   │       └── ClassPathXmlApplicationContext.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   └── util
    │       │                       └── ClassUtils.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   └── bean
    │           │                       ├── IUserDao.java
    │           │                       ├── ProxyBeanFactory.java
    │           │                       └── UserService.java
    │           └── resources
    │               └── spring.xml
    ├── small-spring-step-10
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── Aware.java
    │       │                   │   │   ├── BeanClassLoaderAware.java
    │       │                   │   │   ├── BeanFactoryAware.java
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── BeanNameAware.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── DisposableBean.java
    │       │                   │   │   ├── FactoryBean.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── InitializingBean.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── DisposableBeanAdapter.java
    │       │                   │   │   │   ├── FactoryBeanRegistrySupport.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── ApplicationContextAware.java
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ApplicationEvent.java
    │       │                   │   ├── ApplicationEventPublisher.java
    │       │                   │   ├── ApplicationListener.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   ├── event
    │       │                   │   │   ├── AbstractApplicationEventMulticaster.java
    │       │                   │   │   ├── ApplicationContextEvent.java
    │       │                   │   │   ├── ApplicationEventMulticaster.java
    │       │                   │   │   ├── ContextClosedEvent.java
    │       │                   │   │   ├── ContextRefreshedEvent.java
    │       │                   │   │   └── SimpleApplicationEventMulticaster.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       ├── ApplicationContextAwareProcessor.java
    │       │                   │       └── ClassPathXmlApplicationContext.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   └── util
    │       │                       └── ClassUtils.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   └── event
    │           │                       ├── ContextClosedEventListener.java
    │           │                       ├── ContextRefreshedEventListener.java
    │           │                       ├── CustomEvent.java
    │           │                       └── CustomEventListener.java
    │           └── resources
    │               └── spring.xml
    ├── small-spring-step-11
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── aop
    │       │                   │   ├── AdvisedSupport.java
    │       │                   │   ├── aspectj
    │       │                   │   │   └── AspectJExpressionPointcut.java
    │       │                   │   ├── ClassFilter.java
    │       │                   │   ├── framework
    │       │                   │   │   ├── AopProxy.java
    │       │                   │   │   ├── Cglib2AopProxy.java
    │       │                   │   │   ├── JdkDynamicAopProxy.java
    │       │                   │   │   └── ReflectiveMethodInvocation.java
    │       │                   │   ├── MethodMatcher.java
    │       │                   │   ├── Pointcut.java
    │       │                   │   └── TargetSource.java
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── Aware.java
    │       │                   │   │   ├── BeanClassLoaderAware.java
    │       │                   │   │   ├── BeanFactoryAware.java
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── BeanNameAware.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── DisposableBean.java
    │       │                   │   │   ├── FactoryBean.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── InitializingBean.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── DisposableBeanAdapter.java
    │       │                   │   │   │   ├── FactoryBeanRegistrySupport.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── ApplicationContextAware.java
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ApplicationEvent.java
    │       │                   │   ├── ApplicationEventPublisher.java
    │       │                   │   ├── ApplicationListener.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   ├── event
    │       │                   │   │   ├── AbstractApplicationEventMulticaster.java
    │       │                   │   │   ├── ApplicationContextEvent.java
    │       │                   │   │   ├── ApplicationEventMulticaster.java
    │       │                   │   │   ├── ContextClosedEvent.java
    │       │                   │   │   ├── ContextRefreshedEvent.java
    │       │                   │   │   └── SimpleApplicationEventMulticaster.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       ├── ApplicationContextAwareProcessor.java
    │       │                   │       └── ClassPathXmlApplicationContext.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   └── util
    │       │                       └── ClassUtils.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   └── bean
    │           │                       ├── IUserService.java
    │           │                       ├── UserServiceInterceptor.java
    │           │                       └── UserService.java
    │           └── resources
    │               └── spring.xml
    ├── small-spring-step-12
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── aop
    │       │                   │   ├── AdvisedSupport.java
    │       │                   │   ├── Advisor.java
    │       │                   │   ├── aspectj
    │       │                   │   │   ├── AspectJExpressionPointcutAdvisor.java
    │       │                   │   │   └── AspectJExpressionPointcut.java
    │       │                   │   ├── BeforeAdvice.java
    │       │                   │   ├── ClassFilter.java
    │       │                   │   ├── framework
    │       │                   │   │   ├── adapter
    │       │                   │   │   │   └── MethodBeforeAdviceInterceptor.java
    │       │                   │   │   ├── AopProxy.java
    │       │                   │   │   ├── autoproxy
    │       │                   │   │   │   └── DefaultAdvisorAutoProxyCreator.java
    │       │                   │   │   ├── Cglib2AopProxy.java
    │       │                   │   │   ├── JdkDynamicAopProxy.java
    │       │                   │   │   ├── ProxyFactory.java
    │       │                   │   │   └── ReflectiveMethodInvocation.java
    │       │                   │   ├── MethodBeforeAdvice.java
    │       │                   │   ├── MethodMatcher.java
    │       │                   │   ├── PointcutAdvisor.java
    │       │                   │   ├── Pointcut.java
    │       │                   │   └── TargetSource.java
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── Aware.java
    │       │                   │   │   ├── BeanClassLoaderAware.java
    │       │                   │   │   ├── BeanFactoryAware.java
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── BeanNameAware.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   ├── InstantiationAwareBeanPostProcessor.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── DisposableBean.java
    │       │                   │   │   ├── FactoryBean.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── InitializingBean.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── DisposableBeanAdapter.java
    │       │                   │   │   │   ├── FactoryBeanRegistrySupport.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── ApplicationContextAware.java
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ApplicationEvent.java
    │       │                   │   ├── ApplicationEventPublisher.java
    │       │                   │   ├── ApplicationListener.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   ├── event
    │       │                   │   │   ├── AbstractApplicationEventMulticaster.java
    │       │                   │   │   ├── ApplicationContextEvent.java
    │       │                   │   │   ├── ApplicationEventMulticaster.java
    │       │                   │   │   ├── ContextClosedEvent.java
    │       │                   │   │   ├── ContextRefreshedEvent.java
    │       │                   │   │   └── SimpleApplicationEventMulticaster.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       ├── ApplicationContextAwareProcessor.java
    │       │                   │       └── ClassPathXmlApplicationContext.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   └── util
    │       │                       └── ClassUtils.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   └── bean
    │           │                       ├── IUserService.java
    │           │                       ├── UserServiceBeforeAdvice.java
    │           │                       ├── UserServiceInterceptor.java
    │           │                       └── UserService.java
    │           └── resources
    │               └── spring.xml
    ├── small-spring-step-13
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── aop
    │       │                   │   ├── AdvisedSupport.java
    │       │                   │   ├── Advisor.java
    │       │                   │   ├── aspectj
    │       │                   │   │   ├── AspectJExpressionPointcutAdvisor.java
    │       │                   │   │   └── AspectJExpressionPointcut.java
    │       │                   │   ├── BeforeAdvice.java
    │       │                   │   ├── ClassFilter.java
    │       │                   │   ├── framework
    │       │                   │   │   ├── adapter
    │       │                   │   │   │   └── MethodBeforeAdviceInterceptor.java
    │       │                   │   │   ├── AopProxy.java
    │       │                   │   │   ├── autoproxy
    │       │                   │   │   │   └── DefaultAdvisorAutoProxyCreator.java
    │       │                   │   │   ├── Cglib2AopProxy.java
    │       │                   │   │   ├── JdkDynamicAopProxy.java
    │       │                   │   │   ├── ProxyFactory.java
    │       │                   │   │   └── ReflectiveMethodInvocation.java
    │       │                   │   ├── MethodBeforeAdvice.java
    │       │                   │   ├── MethodMatcher.java
    │       │                   │   ├── PointcutAdvisor.java
    │       │                   │   ├── Pointcut.java
    │       │                   │   └── TargetSource.java
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── Aware.java
    │       │                   │   │   ├── BeanClassLoaderAware.java
    │       │                   │   │   ├── BeanFactoryAware.java
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── BeanNameAware.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   ├── InstantiationAwareBeanPostProcessor.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── DisposableBean.java
    │       │                   │   │   ├── FactoryBean.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── InitializingBean.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── PropertyPlaceholderConfigurer.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── DisposableBeanAdapter.java
    │       │                   │   │   │   ├── FactoryBeanRegistrySupport.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── annotation
    │       │                   │   │   ├── ClassPathBeanDefinitionScanner.java
    │       │                   │   │   ├── ClassPathScanningCandidateComponentProvider.java
    │       │                   │   │   └── Scope.java
    │       │                   │   ├── ApplicationContextAware.java
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ApplicationEvent.java
    │       │                   │   ├── ApplicationEventPublisher.java
    │       │                   │   ├── ApplicationListener.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   ├── event
    │       │                   │   │   ├── AbstractApplicationEventMulticaster.java
    │       │                   │   │   ├── ApplicationContextEvent.java
    │       │                   │   │   ├── ApplicationEventMulticaster.java
    │       │                   │   │   ├── ContextClosedEvent.java
    │       │                   │   │   ├── ContextRefreshedEvent.java
    │       │                   │   │   └── SimpleApplicationEventMulticaster.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       ├── ApplicationContextAwareProcessor.java
    │       │                   │       └── ClassPathXmlApplicationContext.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   ├── stereotype
    │       │                   │   └── Component.java
    │       │                   └── util
    │       │                       └── ClassUtils.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   └── bean
    │           │                       ├── IUserService.java
    │           │                       └── UserService.java
    │           └── resources
    │               ├── spring-property.xml
    │               ├── spring-scan.xml
    │               └── token.properties
    ├── small-spring-step-14
    │   ├── LICENSE
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── aop
    │       │                   │   ├── AdvisedSupport.java
    │       │                   │   ├── Advisor.java
    │       │                   │   ├── aspectj
    │       │                   │   │   ├── AspectJExpressionPointcutAdvisor.java
    │       │                   │   │   └── AspectJExpressionPointcut.java
    │       │                   │   ├── BeforeAdvice.java
    │       │                   │   ├── ClassFilter.java
    │       │                   │   ├── framework
    │       │                   │   │   ├── adapter
    │       │                   │   │   │   └── MethodBeforeAdviceInterceptor.java
    │       │                   │   │   ├── AopProxy.java
    │       │                   │   │   ├── autoproxy
    │       │                   │   │   │   └── DefaultAdvisorAutoProxyCreator.java
    │       │                   │   │   ├── Cglib2AopProxy.java
    │       │                   │   │   ├── JdkDynamicAopProxy.java
    │       │                   │   │   ├── ProxyFactory.java
    │       │                   │   │   └── ReflectiveMethodInvocation.java
    │       │                   │   ├── MethodBeforeAdvice.java
    │       │                   │   ├── MethodMatcher.java
    │       │                   │   ├── PointcutAdvisor.java
    │       │                   │   ├── Pointcut.java
    │       │                   │   └── TargetSource.java
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── annotation
    │       │                   │   │   │   ├── AutowiredAnnotationBeanPostProcessor.java
    │       │                   │   │   │   ├── Autowired.java
    │       │                   │   │   │   ├── Qualifier.java
    │       │                   │   │   │   └── Value.java
    │       │                   │   │   ├── Aware.java
    │       │                   │   │   ├── BeanClassLoaderAware.java
    │       │                   │   │   ├── BeanFactoryAware.java
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── BeanNameAware.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   ├── InstantiationAwareBeanPostProcessor.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── DisposableBean.java
    │       │                   │   │   ├── FactoryBean.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── InitializingBean.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── PropertyPlaceholderConfigurer.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── DisposableBeanAdapter.java
    │       │                   │   │   │   ├── FactoryBeanRegistrySupport.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── annotation
    │       │                   │   │   ├── ClassPathBeanDefinitionScanner.java
    │       │                   │   │   ├── ClassPathScanningCandidateComponentProvider.java
    │       │                   │   │   └── Scope.java
    │       │                   │   ├── ApplicationContextAware.java
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ApplicationEvent.java
    │       │                   │   ├── ApplicationEventPublisher.java
    │       │                   │   ├── ApplicationListener.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   ├── event
    │       │                   │   │   ├── AbstractApplicationEventMulticaster.java
    │       │                   │   │   ├── ApplicationContextEvent.java
    │       │                   │   │   ├── ApplicationEventMulticaster.java
    │       │                   │   │   ├── ContextClosedEvent.java
    │       │                   │   │   ├── ContextRefreshedEvent.java
    │       │                   │   │   └── SimpleApplicationEventMulticaster.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       ├── ApplicationContextAwareProcessor.java
    │       │                   │       └── ClassPathXmlApplicationContext.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   ├── stereotype
    │       │                   │   └── Component.java
    │       │                   └── util
    │       │                       ├── ClassUtils.java
    │       │                       └── StringValueResolver.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   └── bean
    │           │                       ├── IUserService.java
    │           │                       ├── UserDao.java
    │           │                       └── UserService.java
    │           └── resources
    │               ├── spring.xml
    │               └── token.properties
    ├── small-spring-step-15
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── aop
    │       │                   │   ├── AdvisedSupport.java
    │       │                   │   ├── Advisor.java
    │       │                   │   ├── aspectj
    │       │                   │   │   ├── AspectJExpressionPointcutAdvisor.java
    │       │                   │   │   └── AspectJExpressionPointcut.java
    │       │                   │   ├── BeforeAdvice.java
    │       │                   │   ├── ClassFilter.java
    │       │                   │   ├── framework
    │       │                   │   │   ├── adapter
    │       │                   │   │   │   └── MethodBeforeAdviceInterceptor.java
    │       │                   │   │   ├── AopProxy.java
    │       │                   │   │   ├── autoproxy
    │       │                   │   │   │   └── DefaultAdvisorAutoProxyCreator.java
    │       │                   │   │   ├── Cglib2AopProxy.java
    │       │                   │   │   ├── JdkDynamicAopProxy.java
    │       │                   │   │   ├── ProxyFactory.java
    │       │                   │   │   └── ReflectiveMethodInvocation.java
    │       │                   │   ├── MethodBeforeAdvice.java
    │       │                   │   ├── MethodMatcher.java
    │       │                   │   ├── PointcutAdvisor.java
    │       │                   │   ├── Pointcut.java
    │       │                   │   └── TargetSource.java
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── annotation
    │       │                   │   │   │   ├── AutowiredAnnotationBeanPostProcessor.java
    │       │                   │   │   │   ├── Autowired.java
    │       │                   │   │   │   ├── Qualifier.java
    │       │                   │   │   │   └── Value.java
    │       │                   │   │   ├── Aware.java
    │       │                   │   │   ├── BeanClassLoaderAware.java
    │       │                   │   │   ├── BeanFactoryAware.java
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── BeanNameAware.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   ├── InstantiationAwareBeanPostProcessor.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── DisposableBean.java
    │       │                   │   │   ├── FactoryBean.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── InitializingBean.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── PropertyPlaceholderConfigurer.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── DisposableBeanAdapter.java
    │       │                   │   │   │   ├── FactoryBeanRegistrySupport.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── annotation
    │       │                   │   │   ├── ClassPathBeanDefinitionScanner.java
    │       │                   │   │   ├── ClassPathScanningCandidateComponentProvider.java
    │       │                   │   │   └── Scope.java
    │       │                   │   ├── ApplicationContextAware.java
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ApplicationEvent.java
    │       │                   │   ├── ApplicationEventPublisher.java
    │       │                   │   ├── ApplicationListener.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   ├── event
    │       │                   │   │   ├── AbstractApplicationEventMulticaster.java
    │       │                   │   │   ├── ApplicationContextEvent.java
    │       │                   │   │   ├── ApplicationEventMulticaster.java
    │       │                   │   │   ├── ContextClosedEvent.java
    │       │                   │   │   ├── ContextRefreshedEvent.java
    │       │                   │   │   └── SimpleApplicationEventMulticaster.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       ├── ApplicationContextAwareProcessor.java
    │       │                   │       └── ClassPathXmlApplicationContext.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   ├── stereotype
    │       │                   │   └── Component.java
    │       │                   └── util
    │       │                       ├── ClassUtils.java
    │       │                       └── StringValueResolver.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   ├── bean
    │           │                   │   ├── IUserService.java
    │           │                   │   ├── UserServiceBeforeAdvice.java
    │           │                   │   └── UserService.java
    │           │                   └── bean2
    │           │                       ├── IUserService.java
    │           │                       ├── UserDao.java
    │           │                       ├── UserServiceBeforeAdvice.java
    │           │                       └── UserService.java
    │           └── resources
    │               ├── spring2.xml
    │               ├── spring.xml
    │               └── token.properties
    ├── small-spring-step-16
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── aop
    │       │                   │   ├── AdvisedSupport.java
    │       │                   │   ├── Advisor.java
    │       │                   │   ├── aspectj
    │       │                   │   │   ├── AspectJExpressionPointcutAdvisor.java
    │       │                   │   │   └── AspectJExpressionPointcut.java
    │       │                   │   ├── BeforeAdvice.java
    │       │                   │   ├── ClassFilter.java
    │       │                   │   ├── framework
    │       │                   │   │   ├── adapter
    │       │                   │   │   │   └── MethodBeforeAdviceInterceptor.java
    │       │                   │   │   ├── AopProxy.java
    │       │                   │   │   ├── autoproxy
    │       │                   │   │   │   └── DefaultAdvisorAutoProxyCreator.java
    │       │                   │   │   ├── Cglib2AopProxy.java
    │       │                   │   │   ├── JdkDynamicAopProxy.java
    │       │                   │   │   ├── ProxyFactory.java
    │       │                   │   │   └── ReflectiveMethodInvocation.java
    │       │                   │   ├── MethodBeforeAdvice.java
    │       │                   │   ├── MethodMatcher.java
    │       │                   │   ├── PointcutAdvisor.java
    │       │                   │   ├── Pointcut.java
    │       │                   │   └── TargetSource.java
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── annotation
    │       │                   │   │   │   ├── AutowiredAnnotationBeanPostProcessor.java
    │       │                   │   │   │   ├── Autowired.java
    │       │                   │   │   │   ├── Qualifier.java
    │       │                   │   │   │   └── Value.java
    │       │                   │   │   ├── Aware.java
    │       │                   │   │   ├── BeanClassLoaderAware.java
    │       │                   │   │   ├── BeanFactoryAware.java
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── BeanNameAware.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   ├── InstantiationAwareBeanPostProcessor.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── DisposableBean.java
    │       │                   │   │   ├── FactoryBean.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── InitializingBean.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── ObjectFactory.java
    │       │                   │   │   ├── PropertyPlaceholderConfigurer.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── DisposableBeanAdapter.java
    │       │                   │   │   │   ├── FactoryBeanRegistrySupport.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── annotation
    │       │                   │   │   ├── ClassPathBeanDefinitionScanner.java
    │       │                   │   │   ├── ClassPathScanningCandidateComponentProvider.java
    │       │                   │   │   └── Scope.java
    │       │                   │   ├── ApplicationContextAware.java
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ApplicationEvent.java
    │       │                   │   ├── ApplicationEventPublisher.java
    │       │                   │   ├── ApplicationListener.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   ├── event
    │       │                   │   │   ├── AbstractApplicationEventMulticaster.java
    │       │                   │   │   ├── ApplicationContextEvent.java
    │       │                   │   │   ├── ApplicationEventMulticaster.java
    │       │                   │   │   ├── ContextClosedEvent.java
    │       │                   │   │   ├── ContextRefreshedEvent.java
    │       │                   │   │   └── SimpleApplicationEventMulticaster.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       ├── ApplicationContextAwareProcessor.java
    │       │                   │       └── ClassPathXmlApplicationContext.java
    │       │                   ├── core
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   ├── stereotype
    │       │                   │   └── Component.java
    │       │                   └── util
    │       │                       ├── ClassUtils.java
    │       │                       └── StringValueResolver.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   ├── bean
    │           │                   │   ├── Husband.java
    │           │                   │   ├── HusbandMother.java
    │           │                   │   ├── IMother.java
    │           │                   │   ├── SpouseAdvice.java
    │           │                   │   └── Wife.java
    │           │                   └── CircleTest.java
    │           └── resources
    │               └── spring.xml
    ├── small-spring-step-17
    │   ├── pom.xml
    │   └── src
    │       ├── main
    │       │   └── java
    │       │       └── cn
    │       │           └── bugstack
    │       │               └── springframework
    │       │                   ├── aop
    │       │                   │   ├── AdvisedSupport.java
    │       │                   │   ├── Advisor.java
    │       │                   │   ├── aspectj
    │       │                   │   │   ├── AspectJExpressionPointcutAdvisor.java
    │       │                   │   │   └── AspectJExpressionPointcut.java
    │       │                   │   ├── BeforeAdvice.java
    │       │                   │   ├── ClassFilter.java
    │       │                   │   ├── framework
    │       │                   │   │   ├── adapter
    │       │                   │   │   │   └── MethodBeforeAdviceInterceptor.java
    │       │                   │   │   ├── AopProxy.java
    │       │                   │   │   ├── autoproxy
    │       │                   │   │   │   └── DefaultAdvisorAutoProxyCreator.java
    │       │                   │   │   ├── Cglib2AopProxy.java
    │       │                   │   │   ├── JdkDynamicAopProxy.java
    │       │                   │   │   ├── ProxyFactory.java
    │       │                   │   │   └── ReflectiveMethodInvocation.java
    │       │                   │   ├── MethodBeforeAdvice.java
    │       │                   │   ├── MethodMatcher.java
    │       │                   │   ├── PointcutAdvisor.java
    │       │                   │   ├── Pointcut.java
    │       │                   │   └── TargetSource.java
    │       │                   ├── beans
    │       │                   │   ├── BeansException.java
    │       │                   │   ├── factory
    │       │                   │   │   ├── annotation
    │       │                   │   │   │   ├── AutowiredAnnotationBeanPostProcessor.java
    │       │                   │   │   │   ├── Autowired.java
    │       │                   │   │   │   ├── Qualifier.java
    │       │                   │   │   │   └── Value.java
    │       │                   │   │   ├── Aware.java
    │       │                   │   │   ├── BeanClassLoaderAware.java
    │       │                   │   │   ├── BeanFactoryAware.java
    │       │                   │   │   ├── BeanFactory.java
    │       │                   │   │   ├── BeanNameAware.java
    │       │                   │   │   ├── config
    │       │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinition.java
    │       │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │       │                   │   │   │   ├── BeanPostProcessor.java
    │       │                   │   │   │   ├── BeanReference.java
    │       │                   │   │   │   ├── ConfigurableBeanFactory.java
    │       │                   │   │   │   ├── InstantiationAwareBeanPostProcessor.java
    │       │                   │   │   │   └── SingletonBeanRegistry.java
    │       │                   │   │   ├── ConfigurableListableBeanFactory.java
    │       │                   │   │   ├── DisposableBean.java
    │       │                   │   │   ├── FactoryBean.java
    │       │                   │   │   ├── HierarchicalBeanFactory.java
    │       │                   │   │   ├── InitializingBean.java
    │       │                   │   │   ├── ListableBeanFactory.java
    │       │                   │   │   ├── ObjectFactory.java
    │       │                   │   │   ├── PropertyPlaceholderConfigurer.java
    │       │                   │   │   ├── support
    │       │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │       │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │       │                   │   │   │   ├── AbstractBeanFactory.java
    │       │                   │   │   │   ├── BeanDefinitionReader.java
    │       │                   │   │   │   ├── BeanDefinitionRegistry.java
    │       │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │       │                   │   │   │   ├── DefaultListableBeanFactory.java
    │       │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │       │                   │   │   │   ├── DisposableBeanAdapter.java
    │       │                   │   │   │   ├── FactoryBeanRegistrySupport.java
    │       │                   │   │   │   ├── InstantiationStrategy.java
    │       │                   │   │   │   └── SimpleInstantiationStrategy.java
    │       │                   │   │   └── xml
    │       │                   │   │       └── XmlBeanDefinitionReader.java
    │       │                   │   ├── PropertyValue.java
    │       │                   │   └── PropertyValues.java
    │       │                   ├── context
    │       │                   │   ├── annotation
    │       │                   │   │   ├── ClassPathBeanDefinitionScanner.java
    │       │                   │   │   ├── ClassPathScanningCandidateComponentProvider.java
    │       │                   │   │   └── Scope.java
    │       │                   │   ├── ApplicationContextAware.java
    │       │                   │   ├── ApplicationContext.java
    │       │                   │   ├── ApplicationEvent.java
    │       │                   │   ├── ApplicationEventPublisher.java
    │       │                   │   ├── ApplicationListener.java
    │       │                   │   ├── ConfigurableApplicationContext.java
    │       │                   │   ├── event
    │       │                   │   │   ├── AbstractApplicationEventMulticaster.java
    │       │                   │   │   ├── ApplicationContextEvent.java
    │       │                   │   │   ├── ApplicationEventMulticaster.java
    │       │                   │   │   ├── ContextClosedEvent.java
    │       │                   │   │   ├── ContextRefreshedEvent.java
    │       │                   │   │   └── SimpleApplicationEventMulticaster.java
    │       │                   │   └── support
    │       │                   │       ├── AbstractApplicationContext.java
    │       │                   │       ├── AbstractRefreshableApplicationContext.java
    │       │                   │       ├── AbstractXmlApplicationContext.java
    │       │                   │       ├── ApplicationContextAwareProcessor.java
    │       │                   │       ├── ClassPathXmlApplicationContext.java
    │       │                   │       └── ConversionServiceFactoryBean.java
    │       │                   ├── core
    │       │                   │   ├── convert
    │       │                   │   │   ├── ConversionService.java
    │       │                   │   │   ├── converter
    │       │                   │   │   │   ├── ConverterFactory.java
    │       │                   │   │   │   ├── Converter.java
    │       │                   │   │   │   ├── ConverterRegistry.java
    │       │                   │   │   │   └── GenericConverter.java
    │       │                   │   │   └── support
    │       │                   │   │       ├── DefaultConversionService.java
    │       │                   │   │       ├── GenericConversionService.java
    │       │                   │   │       └── StringToNumberConverterFactory.java
    │       │                   │   └── io
    │       │                   │       ├── ClassPathResource.java
    │       │                   │       ├── DefaultResourceLoader.java
    │       │                   │       ├── FileSystemResource.java
    │       │                   │       ├── Resource.java
    │       │                   │       ├── ResourceLoader.java
    │       │                   │       └── UrlResource.java
    │       │                   ├── stereotype
    │       │                   │   └── Component.java
    │       │                   └── util
    │       │                       ├── ClassUtils.java
    │       │                       ├── NumberUtils.java
    │       │                       └── StringValueResolver.java
    │       └── test
    │           ├── java
    │           │   └── cn
    │           │       └── bugstack
    │           │           └── springframework
    │           │               └── test
    │           │                   ├── ApiTest.java
    │           │                   ├── bean
    │           │                   │   └── Husband.java
    │           │                   └── converter
    │           │                       ├── ConvertersFactoryBean.java
    │           │                       ├── StringToIntegerConverter.java
    │           │                       └── StringToLocalDateConverter.java
    │           └── resources
    │               └── spring.xml
    ├── small-spring-step-18
    │   ├── pom.xml
    │   ├── spring-jdbc.assets
    │   │   └── spring-jdbc.png
    │   ├── spring-jdbc.md
    │   ├── src
    │   │   ├── main
    │   │   │   └── java
    │   │   │       └── cn
    │   │   │           └── bugstack
    │   │   │               └── springframework
    │   │   │                   ├── aop
    │   │   │                   │   ├── AdvisedSupport.java
    │   │   │                   │   ├── Advisor.java
    │   │   │                   │   ├── aspectj
    │   │   │                   │   │   ├── AspectJExpressionPointcutAdvisor.java
    │   │   │                   │   │   └── AspectJExpressionPointcut.java
    │   │   │                   │   ├── BeforeAdvice.java
    │   │   │                   │   ├── ClassFilter.java
    │   │   │                   │   ├── framework
    │   │   │                   │   │   ├── adapter
    │   │   │                   │   │   │   └── MethodBeforeAdviceInterceptor.java
    │   │   │                   │   │   ├── AopProxy.java
    │   │   │                   │   │   ├── autoproxy
    │   │   │                   │   │   │   └── DefaultAdvisorAutoProxyCreator.java
    │   │   │                   │   │   ├── Cglib2AopProxy.java
    │   │   │                   │   │   ├── JdkDynamicAopProxy.java
    │   │   │                   │   │   ├── ProxyFactory.java
    │   │   │                   │   │   └── ReflectiveMethodInvocation.java
    │   │   │                   │   ├── MethodBeforeAdvice.java
    │   │   │                   │   ├── MethodMatcher.java
    │   │   │                   │   ├── PointcutAdvisor.java
    │   │   │                   │   ├── Pointcut.java
    │   │   │                   │   └── TargetSource.java
    │   │   │                   ├── beans
    │   │   │                   │   ├── BeansException.java
    │   │   │                   │   ├── factory
    │   │   │                   │   │   ├── annotation
    │   │   │                   │   │   │   ├── AutowiredAnnotationBeanPostProcessor.java
    │   │   │                   │   │   │   ├── Autowired.java
    │   │   │                   │   │   │   ├── Qualifier.java
    │   │   │                   │   │   │   └── Value.java
    │   │   │                   │   │   ├── Aware.java
    │   │   │                   │   │   ├── BeanClassLoaderAware.java
    │   │   │                   │   │   ├── BeanFactoryAware.java
    │   │   │                   │   │   ├── BeanFactory.java
    │   │   │                   │   │   ├── BeanNameAware.java
    │   │   │                   │   │   ├── config
    │   │   │                   │   │   │   ├── AutowireCapableBeanFactory.java
    │   │   │                   │   │   │   ├── BeanDefinition.java
    │   │   │                   │   │   │   ├── BeanFactoryPostProcessor.java
    │   │   │                   │   │   │   ├── BeanPostProcessor.java
    │   │   │                   │   │   │   ├── BeanReference.java
    │   │   │                   │   │   │   ├── ConfigurableBeanFactory.java
    │   │   │                   │   │   │   ├── InstantiationAwareBeanPostProcessor.java
    │   │   │                   │   │   │   └── SingletonBeanRegistry.java
    │   │   │                   │   │   ├── ConfigurableListableBeanFactory.java
    │   │   │                   │   │   ├── DisposableBean.java
    │   │   │                   │   │   ├── FactoryBean.java
    │   │   │                   │   │   ├── HierarchicalBeanFactory.java
    │   │   │                   │   │   ├── InitializingBean.java
    │   │   │                   │   │   ├── ListableBeanFactory.java
    │   │   │                   │   │   ├── ObjectFactory.java
    │   │   │                   │   │   ├── PropertyPlaceholderConfigurer.java
    │   │   │                   │   │   ├── support
    │   │   │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
    │   │   │                   │   │   │   ├── AbstractBeanDefinitionReader.java
    │   │   │                   │   │   │   ├── AbstractBeanFactory.java
    │   │   │                   │   │   │   ├── BeanDefinitionReader.java
    │   │   │                   │   │   │   ├── BeanDefinitionRegistry.java
    │   │   │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
    │   │   │                   │   │   │   ├── DefaultListableBeanFactory.java
    │   │   │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
    │   │   │                   │   │   │   ├── DisposableBeanAdapter.java
    │   │   │                   │   │   │   ├── FactoryBeanRegistrySupport.java
    │   │   │                   │   │   │   ├── InstantiationStrategy.java
    │   │   │                   │   │   │   └── SimpleInstantiationStrategy.java
    │   │   │                   │   │   └── xml
    │   │   │                   │   │       └── XmlBeanDefinitionReader.java
    │   │   │                   │   ├── PropertyValue.java
    │   │   │                   │   └── PropertyValues.java
    │   │   │                   ├── context
    │   │   │                   │   ├── annotation
    │   │   │                   │   │   ├── ClassPathBeanDefinitionScanner.java
    │   │   │                   │   │   ├── ClassPathScanningCandidateComponentProvider.java
    │   │   │                   │   │   └── Scope.java
    │   │   │                   │   ├── ApplicationContextAware.java
    │   │   │                   │   ├── ApplicationContext.java
    │   │   │                   │   ├── ApplicationEvent.java
    │   │   │                   │   ├── ApplicationEventPublisher.java
    │   │   │                   │   ├── ApplicationListener.java
    │   │   │                   │   ├── ConfigurableApplicationContext.java
    │   │   │                   │   ├── event
    │   │   │                   │   │   ├── AbstractApplicationEventMulticaster.java
    │   │   │                   │   │   ├── ApplicationContextEvent.java
    │   │   │                   │   │   ├── ApplicationEventMulticaster.java
    │   │   │                   │   │   ├── ContextClosedEvent.java
    │   │   │                   │   │   ├── ContextRefreshedEvent.java
    │   │   │                   │   │   └── SimpleApplicationEventMulticaster.java
    │   │   │                   │   └── support
    │   │   │                   │       ├── AbstractApplicationContext.java
    │   │   │                   │       ├── AbstractRefreshableApplicationContext.java
    │   │   │                   │       ├── AbstractXmlApplicationContext.java
    │   │   │                   │       ├── ApplicationContextAwareProcessor.java
    │   │   │                   │       ├── ClassPathXmlApplicationContext.java
    │   │   │                   │       └── ConversionServiceFactoryBean.java
    │   │   │                   ├── core
    │   │   │                   │   ├── convert
    │   │   │                   │   │   ├── ConversionService.java
    │   │   │                   │   │   ├── converter
    │   │   │                   │   │   │   ├── ConverterFactory.java
    │   │   │                   │   │   │   ├── Converter.java
    │   │   │                   │   │   │   ├── ConverterRegistry.java
    │   │   │                   │   │   │   └── GenericConverter.java
    │   │   │                   │   │   └── support
    │   │   │                   │   │       ├── DefaultConversionService.java
    │   │   │                   │   │       ├── GenericConversionService.java
    │   │   │                   │   │       └── StringToNumberConverterFactory.java
    │   │   │                   │   └── io
    │   │   │                   │       ├── ClassPathResource.java
    │   │   │                   │       ├── DefaultResourceLoader.java
    │   │   │                   │       ├── FileSystemResource.java
    │   │   │                   │       ├── Resource.java
    │   │   │                   │       ├── ResourceLoader.java
    │   │   │                   │       └── UrlResource.java
    │   │   │                   ├── jdbc
    │   │   │                   │   ├── CannotGetJdbcConnectionException.java
    │   │   │                   │   ├── core
    │   │   │                   │   │   ├── ArgumentPreparedStatementSetter.java
    │   │   │                   │   │   ├── ColumnMapRowMapper.java
    │   │   │                   │   │   ├── JdbcOperations.java
    │   │   │                   │   │   ├── PreparedStatementCallback.java
    │   │   │                   │   │   ├── PreparedStatementCreator.java
    │   │   │                   │   │   ├── PreparedStatementSetter.java
    │   │   │                   │   │   ├── ResultSetExtractor.java
    │   │   │                   │   │   ├── RowMapper.java
    │   │   │                   │   │   ├── RowMapperResultSetExtractor.java
    │   │   │                   │   │   ├── SingleColumnRowMapper.java
    │   │   │                   │   │   ├── SqlProvider.java
    │   │   │                   │   │   └── StatementCallback.java
    │   │   │                   │   ├── datasource
    │   │   │                   │   │   ├── ConnectionHandler.java
    │   │   │                   │   │   ├── ConnectionHolder.java
    │   │   │                   │   │   ├── DataSourceUtils.java
    │   │   │                   │   │   └── SimpleConnectionHandler.java
    │   │   │                   │   ├── IncorrectResultSetColumnCountException.java
    │   │   │                   │   ├── support
    │   │   │                   │   │   ├── JdbcAccessor.java
    │   │   │                   │   │   ├── JdbcTemplate.java
    │   │   │                   │   │   └── JdbcUtils.java
    │   │   │                   │   └── UncategorizedSQLException.java
    │   │   │                   ├── stereotype
    │   │   │                   │   └── Component.java
    │   │   │                   └── util
    │   │   │                       ├── ClassUtils.java
    │   │   │                       ├── NumberUtils.java
    │   │   │                       └── StringValueResolver.java
    │   │   └── test
    │   │       ├── java
    │   │       │   └── cn
    │   │       │       └── bugstack
    │   │       │           └── springframework
    │   │       │               └── test
    │   │       │                   ├── ApiTest.java
    │   │       │                   └── JdbcTest.java
    │   │       └── resources
    │   │           └── spring.xml
    │   └── target
    │       └── test-classes
    │           └── spring.xml
    └── small-spring-step-19
        ├── pom.xml
        ├── spring-tx.assets
        │   ├── image-20220311122257080.png
        │   ├── image-20220311123222599.png
        │   ├── image-20220311134037268.png
        │   ├── image-20220311140602393.png
        │   ├── image-20220311153945876.png
        │   └── spring-tx.png
        ├── spring-tx.md
        ├── src
        │   ├── main
        │   │   └── java
        │   │       └── cn
        │   │           └── bugstack
        │   │               └── springframework
        │   │                   ├── aop
        │   │                   │   ├── AdvisedSupport.java
        │   │                   │   ├── Advisor.java
        │   │                   │   ├── aspectj
        │   │                   │   │   ├── AspectJExpressionPointcutAdvisor.java
        │   │                   │   │   └── AspectJExpressionPointcut.java
        │   │                   │   ├── BeforeAdvice.java
        │   │                   │   ├── ClassFilter.java
        │   │                   │   ├── framework
        │   │                   │   │   ├── adapter
        │   │                   │   │   │   └── MethodBeforeAdviceInterceptor.java
        │   │                   │   │   ├── AopProxy.java
        │   │                   │   │   ├── autoproxy
        │   │                   │   │   │   └── DefaultAdvisorAutoProxyCreator.java
        │   │                   │   │   ├── Cglib2AopProxy.java
        │   │                   │   │   ├── JdkDynamicAopProxy.java
        │   │                   │   │   ├── ProxyFactory.java
        │   │                   │   │   └── ReflectiveMethodInvocation.java
        │   │                   │   ├── MethodBeforeAdvice.java
        │   │                   │   ├── MethodMatcher.java
        │   │                   │   ├── PointcutAdvisor.java
        │   │                   │   ├── Pointcut.java
        │   │                   │   ├── support
        │   │                   │   │   ├── AbstractBeanFactoryPointcutAdvisor.java
        │   │                   │   │   ├── AbstractPointcutAdvisor.java
        │   │                   │   │   ├── StaticMethodMatcher.java
        │   │                   │   │   └── StaticMethodMatcherPointcut.java
        │   │                   │   ├── TargetSource.java
        │   │                   │   └── TrueClassFilter.java
        │   │                   ├── beans
        │   │                   │   ├── BeansException.java
        │   │                   │   ├── factory
        │   │                   │   │   ├── annotation
        │   │                   │   │   │   ├── AutowiredAnnotationBeanPostProcessor.java
        │   │                   │   │   │   ├── Autowired.java
        │   │                   │   │   │   ├── Qualifier.java
        │   │                   │   │   │   └── Value.java
        │   │                   │   │   ├── Aware.java
        │   │                   │   │   ├── BeanClassLoaderAware.java
        │   │                   │   │   ├── BeanFactoryAware.java
        │   │                   │   │   ├── BeanFactory.java
        │   │                   │   │   ├── BeanNameAware.java
        │   │                   │   │   ├── config
        │   │                   │   │   │   ├── AutowireCapableBeanFactory.java
        │   │                   │   │   │   ├── BeanDefinition.java
        │   │                   │   │   │   ├── BeanFactoryPostProcessor.java
        │   │                   │   │   │   ├── BeanPostProcessor.java
        │   │                   │   │   │   ├── BeanReference.java
        │   │                   │   │   │   ├── ConfigurableBeanFactory.java
        │   │                   │   │   │   ├── InstantiationAwareBeanPostProcessor.java
        │   │                   │   │   │   └── SingletonBeanRegistry.java
        │   │                   │   │   ├── ConfigurableListableBeanFactory.java
        │   │                   │   │   ├── DisposableBean.java
        │   │                   │   │   ├── FactoryBean.java
        │   │                   │   │   ├── HierarchicalBeanFactory.java
        │   │                   │   │   ├── InitializingBean.java
        │   │                   │   │   ├── ListableBeanFactory.java
        │   │                   │   │   ├── ObjectFactory.java
        │   │                   │   │   ├── PropertyPlaceholderConfigurer.java
        │   │                   │   │   ├── support
        │   │                   │   │   │   ├── AbstractAutowireCapableBeanFactory.java
        │   │                   │   │   │   ├── AbstractBeanDefinitionReader.java
        │   │                   │   │   │   ├── AbstractBeanFactory.java
        │   │                   │   │   │   ├── BeanDefinitionReader.java
        │   │                   │   │   │   ├── BeanDefinitionRegistry.java
        │   │                   │   │   │   ├── CglibSubclassingInstantiationStrategy.java
        │   │                   │   │   │   ├── DefaultListableBeanFactory.java
        │   │                   │   │   │   ├── DefaultSingletonBeanRegistry.java
        │   │                   │   │   │   ├── DisposableBeanAdapter.java
        │   │                   │   │   │   ├── FactoryBeanRegistrySupport.java
        │   │                   │   │   │   ├── InstantiationStrategy.java
        │   │                   │   │   │   └── SimpleInstantiationStrategy.java
        │   │                   │   │   └── xml
        │   │                   │   │       └── XmlBeanDefinitionReader.java
        │   │                   │   ├── PropertyValue.java
        │   │                   │   └── PropertyValues.java
        │   │                   ├── context
        │   │                   │   ├── annotation
        │   │                   │   │   ├── ClassPathBeanDefinitionScanner.java
        │   │                   │   │   ├── ClassPathScanningCandidateComponentProvider.java
        │   │                   │   │   └── Scope.java
        │   │                   │   ├── ApplicationContextAware.java
        │   │                   │   ├── ApplicationContext.java
        │   │                   │   ├── ApplicationEvent.java
        │   │                   │   ├── ApplicationEventPublisher.java
        │   │                   │   ├── ApplicationListener.java
        │   │                   │   ├── ConfigurableApplicationContext.java
        │   │                   │   ├── event
        │   │                   │   │   ├── AbstractApplicationEventMulticaster.java
        │   │                   │   │   ├── ApplicationContextEvent.java
        │   │                   │   │   ├── ApplicationEventMulticaster.java
        │   │                   │   │   ├── ContextClosedEvent.java
        │   │                   │   │   ├── ContextRefreshedEvent.java
        │   │                   │   │   └── SimpleApplicationEventMulticaster.java
        │   │                   │   └── support
        │   │                   │       ├── AbstractApplicationContext.java
        │   │                   │       ├── AbstractRefreshableApplicationContext.java
        │   │                   │       ├── AbstractXmlApplicationContext.java
        │   │                   │       ├── ApplicationContextAwareProcessor.java
        │   │                   │       ├── ClassPathXmlApplicationContext.java
        │   │                   │       └── ConversionServiceFactoryBean.java
        │   │                   ├── core
        │   │                   │   ├── annotation
        │   │                   │   │   ├── AbstractAliasAwareAnnotationAttributeExtractor.java
        │   │                   │   │   ├── AliasFor.java
        │   │                   │   │   ├── AnnotatedElementUtils.java
        │   │                   │   │   ├── AnnotationAttributeExtractor.java
        │   │                   │   │   ├── AnnotationAttributes.java
        │   │                   │   │   ├── AnnotationConfigurationException.java
        │   │                   │   │   ├── AnnotationUtils.java
        │   │                   │   │   ├── DefaultAnnotationAttributeExtractor.java
        │   │                   │   │   ├── SynthesizedAnnotationInvocationHandler.java
        │   │                   │   │   └── SynthesizedAnnotation.java
        │   │                   │   ├── BridgeMethodResolver.java
        │   │                   │   ├── convert
        │   │                   │   │   ├── ConversionService.java
        │   │                   │   │   ├── converter
        │   │                   │   │   │   ├── ConverterFactory.java
        │   │                   │   │   │   ├── Converter.java
        │   │                   │   │   │   ├── ConverterRegistry.java
        │   │                   │   │   │   └── GenericConverter.java
        │   │                   │   │   └── support
        │   │                   │   │       ├── DefaultConversionService.java
        │   │                   │   │       ├── GenericConversionService.java
        │   │                   │   │       └── StringToNumberConverterFactory.java
        │   │                   │   ├── GraalDetector.java
        │   │                   │   ├── io
        │   │                   │   │   ├── ClassPathResource.java
        │   │                   │   │   ├── DefaultResourceLoader.java
        │   │                   │   │   ├── FileSystemResource.java
        │   │                   │   │   ├── Resource.java
        │   │                   │   │   ├── ResourceLoader.java
        │   │                   │   │   └── UrlResource.java
        │   │                   │   ├── MethodClassKey.java
        │   │                   │   ├── MethodParameter.java
        │   │                   │   ├── ResolvableType.java
        │   │                   │   ├── SerializableTypeWrapper.java
        │   │                   │   └── util
        │   │                   │       ├── ConcurrentReferenceHashMap.java
        │   │                   │       ├── ObjectUtils.java
        │   │                   │       └── StringUtils.java
        │   │                   ├── jdbc
        │   │                   │   ├── CannotGetJdbcConnectionException.java
        │   │                   │   ├── core
        │   │                   │   │   ├── ArgumentPreparedStatementSetter.java
        │   │                   │   │   ├── ColumnMapRowMapper.java
        │   │                   │   │   ├── JdbcOperations.java
        │   │                   │   │   ├── PreparedStatementCallback.java
        │   │                   │   │   ├── PreparedStatementCreator.java
        │   │                   │   │   ├── PreparedStatementSetter.java
        │   │                   │   │   ├── ResultSetExtractor.java
        │   │                   │   │   ├── RowMapper.java
        │   │                   │   │   ├── RowMapperResultSetExtractor.java
        │   │                   │   │   ├── SingleColumnRowMapper.java
        │   │                   │   │   ├── SqlProvider.java
        │   │                   │   │   └── StatementCallback.java
        │   │                   │   ├── datasource
        │   │                   │   │   ├── ConnectionHandler.java
        │   │                   │   │   ├── ConnectionHolder.java
        │   │                   │   │   ├── DataSourceTransactionManager.java
        │   │                   │   │   ├── DataSourceUtils.java
        │   │                   │   │   ├── JdbcTransactionObjectSupport.java
        │   │                   │   │   └── SimpleConnectionHandler.java
        │   │                   │   ├── IncorrectResultSetColumnCountException.java
        │   │                   │   ├── support
        │   │                   │   │   ├── JdbcAccessor.java
        │   │                   │   │   ├── JdbcTemplate.java
        │   │                   │   │   └── JdbcUtils.java
        │   │                   │   └── UncategorizedSQLException.java
        │   │                   ├── stereotype
        │   │                   │   └── Component.java
        │   │                   ├── tx
        │   │                   │   └── transaction
        │   │                   │       ├── annotation
        │   │                   │       │   ├── AnnotationTransactionAttributeSource.java
        │   │                   │       │   ├── SpringTransactionAnnotationParser.java
        │   │                   │       │   ├── Transactional.java
        │   │                   │       │   └── TransactionAnnotationParser.java
        │   │                   │       ├── CannotCreateTransactionException.java
        │   │                   │       ├── interceptor
        │   │                   │       │   ├── AbstractFallbackTransactionAttributeSource.java
        │   │                   │       │   ├── BeanFactoryTransactionAttributeSourceAdvisor.java
        │   │                   │       │   ├── DefaultTransactionAttribute.java
        │   │                   │       │   ├── DelegatingTransactionAttribute.java
        │   │                   │       │   ├── RollbackRuleAttribute.java
        │   │                   │       │   ├── RuleBasedTransactionAttribute.java
        │   │                   │       │   ├── TransactionAspectSupport.java
        │   │                   │       │   ├── TransactionAttribute.java
        │   │                   │       │   ├── TransactionAttributeSource.java
        │   │                   │       │   ├── TransactionAttributeSourcePointcut.java
        │   │                   │       │   └── TransactionInterceptor.java
        │   │                   │       ├── NestedTransactionNotSupportedException.java
        │   │                   │       ├── PlatformTransactionManager.java
        │   │                   │       ├── SavepointManager.java
        │   │                   │       ├── support
        │   │                   │       │   ├── AbstractPlatformTransactionManager.java
        │   │                   │       │   ├── AbstractTransactionStatus.java
        │   │                   │       │   ├── DefaultTransactionDefinition.java
        │   │                   │       │   ├── DefaultTransactionStatus.java
        │   │                   │       │   ├── DelegatingTransactionDefinition.java
        │   │                   │       │   ├── TransactionSynchronizationManager.java
        │   │                   │       │   └── TransactionSynchronizationUtils.java
        │   │                   │       ├── TransactionDefinition.java
        │   │                   │       ├── TransactionException.java
        │   │                   │       └── TransactionStatus.java
        │   │                   └── util
        │   │                       ├── ClassUtils.java
        │   │                       ├── NumberUtils.java
        │   │                       ├── ReflectionUtils.java
        │   │                       └── StringValueResolver.java
        │   └── test
        │       ├── java
        │       │   └── cn
        │       │       └── bugstack
        │       │           └── springframework
        │       │               └── test
        │       │                   ├── ApiTest.java
        │       │                   ├── JdbcTest.java
        │       │                   ├── service
        │       │                   │   ├── impl
        │       │                   │   │   └── JdbcServiceImpl.java
        │       │                   │   └── JdbcService.java
        │       │                   └── TransactionProxy.java
        │       └── resources
        │           └── spring.xml
        └── target
            └── test-classes
                └── spring.xml

562 directories, 1395 files

标签: Spring 核心原理

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警