The org.springframework.beans and org.springframework.context packages provide the basis for the Spring Framework's IoC container. The ApplicationContext interface is superset of BeanFactory implementations like and adds other functionality such as easier integration with Spring's AOP features, event propagation, and application-layer specific contexts such as the WebApplicationContext for use in web applications. So ApplicationContext is more preferred in general case.