Разница между BeanFactory и ApplicationContext?

Оба на самом деле являются контейнерами ioc. Но в чем на самом деле разница между ними? Какой лучше использовать?


person Vignesh    schedule 24.02.2014    source источник
comment
этот вопрос повторяется с вопросом 243385.   -  person tanghao    schedule 16.11.2014


Ответы (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 предпочтительнее, если вам не нужно экономить ресурсы, как в мобильном приложении.

person Sudip7    schedule 24.02.2014

И BeanFactory, и Application используются для управления жизненным циклом bean-компонентов, ApplicationContext может делать все, что BeanFactory делает вместе с AOP, Event и т. Д.

Если до тех пор, пока ресурсы не станут решающими, перейдите к ApplicationContext.

person Inayathulla    schedule 24.02.2014