Оба на самом деле являются контейнерами ioc. Но в чем на самом деле разница между ними? Какой лучше использовать?
Разница между BeanFactory и ApplicationContext?
Ответы (2)
ApplicationContext является производным от BeanFactory для обеспечения дополнительных функций для работы в веб-приложении.
Вы можете создать экземпляр своего весеннего контейнера, просто написав
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
or
ApplicationContext context = new ClassPathXmlApplicationContext{"spring_dao.xml","spring_service.xml};
Вы можете использовать один или несколько XML-файлов в зависимости от требований вашего проекта. Поскольку я здесь использую два файла xml, то есть один для деталей конфигурации для классов обслуживания, другой для классов dao. Здесь ClassPathXmlApplicationContext является дочерним по отношению к ApplicationContext.
Чтобы лучше понять разницу, вы можете проверить http://docs.spring.io/spring/docs/2.5.x/reference/beans.html#context-introduction-ctx-vs-beanfactory сайт.
Выбор между BeanFactory и ApplicationContext также зависит от того, как вы хотите загружать bean-компоненты.
ApplicationContext предпочтительнее, если вам не нужно экономить ресурсы, как в мобильном приложении.
И BeanFactory, и Application используются для управления жизненным циклом bean-компонентов, ApplicationContext может делать все, что BeanFactory делает вместе с AOP, Event и т. Д.
Если до тех пор, пока ресурсы не станут решающими, перейдите к ApplicationContext.