Spring – IoC 容器
Spring框架可以看作是子框架的集合,也称为层,如Spring AOP、Spring ORM、Spring Web Flow、Spring Web MVC等。您可以在构建 Web 应用程序时单独使用这些模块中的任何一个。这些模块也可以组合在一起以在 Web 应用程序中提供更好的功能。
在深入到 Spring 到容器之前,请记住 Spring 提供了两种类型的容器,如下所示:
- BeanFactory 容器
- 应用上下文容器
Spring 框架的 IoC、AOP 和事务管理等特性使其在框架列表中独一无二。 Spring 框架的一些最重要的特性如下:
- IOC容器
- 数据访问框架
- 春季MVC
- 交易管理
- 春季网络服务
- JDBC抽象层
- Spring TestContext 框架
Spring IoC Container 是 Spring Framework 的核心。它创建对象,配置和组装它们的依赖项,管理它们的整个生命周期。容器使用依赖注入(DI)来管理组成应用程序的组件。它从配置文件 (XML) 或Java代码或Java注释和Java POJO 类中获取有关对象的信息。这些对象称为 Bean。由于Java对象及其生命周期的控制不是由开发人员完成的,因此命名为Inversion Of Control 。
Note: Spring IoC generally directly refers to a core container that uses the DI/DC pattern to implicitly provide an object reference in a class during runtime. The IoC container contains assembler code that handles the configuration management of application objects.
下图描述了容器如何使用配置元数据和Java POJO 类来管理 bean。
所以最后让我们讨论一下 BeanFactory 和 ApplicationContext 之间的一些主要区别,以便对 spring IoC 容器有一个清晰的认识,如下表所示: Feature BeanFactory ApplicationContext No Yes Yes Yes No Yes No Yes No Yes Automatic BeanPostProcessor registration No Yes Automatic BeanFactoryPostProcessor registration No YesAnnotation Support Bean Instantiation/Wiring Internationalization Enterprise Services ApplicationEvent publication Loading Mechanism Lazy loading Aggressive loading