*** ### What Is Spring Context? Spring contexts are also called **Spring [[Inversion of Control | IoC]] containers**, which are responsible for instantiating, configuring, and assembling beans by reading configuration metadata from XML, Java annotations, and/or Java code in the configuration files. ### How are Spring IoC containers represented? The interfaces _[BeanFactory](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/BeanFactory.html)_ and _[ApplicationContext](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/ApplicationContext.html)_ **represent the Spring IoC container**. Here, _BeanFactory_ is the root interface for accessing the Spring container. It provides basic functionalities for managing [[Spring Bean | beans]]. On the other hand, the _ApplicationContext_ is a sub-interface of the _BeanFactory_. Therefore, it offers all the functionalities of _BeanFactory._ Furthermore, it **provides** **more enterprise-specific functionalities**. The important features of _ApplicationContext_ are **resolving messages, supporting internationalization, publishing events, and application-layer specific contexts**. This is why we use it as the default Spring container. *** **References**: - [What Is a Spring Context?](https://dzone.com/articles/what-is-a-spring-context) - [The Spring ApplicationContext](https://www.baeldung.com/spring-application-context)