IOC部分
- IOC不等于IOC容器,即使不使用spring,我们也可以使用IOC,只不过spring提供了IOC容器实现。Spring的IoC容器的功能就包含一个提供依赖注入服务的IoC Service Provider。它提供两方面的支持,业务对象的构建管理和业务对象间的依赖绑定。
- BeanFactory或者ApplicationContext定义如何访问容器内管理的Bean的方法,BeanDefinitionRegistry接口负责Bean的注册管理。BeanDefinitionReader或者Scanner的实现类负责通过读取配置文件或者注解得到Bean信息。BeanFactory或者ApplicationContext的实现类最终进行实现。
- XmlBeanDefinitionReader:负责读取Spring指定格式的XML配置文件并解析,之后将解析后的文件内
容映射到相应的BeanDefinition,并加载到相应的BeanDefinitionRegistry中(在这里是Default-
ListableBeanFactory)。这时,整个BeanFactory就可以放给客户端使用了
AnnotatedBeanDefinitionReader/ClassPathBeanDefinitionScanner:负责注解的扫描,之后将扫描到的内容映射到相应的BeanDefinition,并加载到相应的BeanDefinitionRegistry中(在这里是Default-
ListableBeanFactory)。这时,整个ApplicationContext就可以放给客户端使用了 - 配置类:带有 @Configuration 注解的类,如果这个类带有 @Component | @ComponentScan | @Import | @ImportSource 注解,或者内部存在 @Bean 的方法都算配置类
- IOC容器启动阶段,只是准备好了Bean对象对应的BeanDefinition,并且都注册到了相应的BeanDefinitionRegistry,此时,Bean都还没有实例化。
- BeanFactory在spring-bean包里,ApplicationContext在spring-context包里。
- “spring-beans” 和 “spring-context” 都是 Spring Framework 的一部分,这是一个用于构建应用程序的流行的 Java 框架。
“spring-beans” 是 Spring Framework 的一个模块,提供了在 Spring 应用程序中定义和管理 bean 的支持。在 Spring 中,“bean” 是由 Spring IoC 容器管理的对象,可以使用构造函数参数、属性值和方法调用等元数据配置。
而 “spring-context” 则是一个更广泛的模块,提供了 Spring Framework 的核心上下文功能。它包括加载配置文件和管理 bean 的能力,以及许多附加功能,如事件发布和监听、消息源访问和对国际化(i18n)的支持。
因此,总之,“spring-beans” 是处理管理 bean 的 Spring Framework 的特定部分,而 “spring-context” 则提供了管理 Spring 应用程序上下文的更广泛的功能。 - 测是