2015-01-06 2 views
0

В чем разница между следующими двумя операторами, хотя оба они, по-видимому, используются для загрузки конфигурации xml?Разница между ClassPathXmlApplicationContext и ClassPathResource

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); 

и

Resource resource = new ClassPathResource("applicationContext.xml"); 
BeanFactory factory = new XmlBeanFactory(resource); 

Есть ли какая-то разница (производительность WRT, использование) между этими двумя?

+0

Прочитайте справочное руководство, которое имеет [раздел] (http://docs.spring.io/spring/docs/current/spring- framework-reference/html/beans.html # context-introduction-ctx-vs-beanfactory). Основное различие заключается в 'BeanFactory' и' ApplicationContext'. –

+0

Обратите внимание, что * ни один из них не является особенно хорошей практикой в ​​течение некоторого времени. Используйте Spring Boot для автономного приложения и JavaConfig или '@ ImportResource'. – chrylis

ответ

3

ClassPathXmlApplicationContext

Standalone контекст приложения XML, принимая файлы определения контекста с пути класса, интерпретируя простые пути в качестве имен путь класса ресурсов, которые включают в себя путь пакета (например, «MyPackage/myresource.txt»). Полезно для тестовых жгутов, а также для контекстов приложений, встроенных в JAR. По умолчанию значения конфигурации по умолчанию могут быть переопределены через AbstractRefreshableConfigApplicationContext.getConfigLocations(), места конфигурации могут либо обозначать конкретные файлы, как «/myfiles/context.xml», или шаблоны Ant-стиля, такие как «/myfiles/*-context.xml» (см. файл javadoc AntPathMatcher для деталей шаблона).

Примечание: в случае расположения нескольких конфигураций последующие определения bean-компонентов будут переопределять те, которые определены в ранее загруженных файлах. Это может быть использовано для преднамеренного переопределения определенных определений компонентов через дополнительный XML-файл.

Это простой, универсальный магазин удобство ApplicationContext. Рассмотрите возможность использования класса GenericApplicationContext в сочетании с XmlBeanDefinitionReader для более гибкой настройки контекста. Реализация

ClassPathResource

ресурсов для пути класса ресурсов. Использует данный класс ClassLoader или данный класс для загрузки ресурсов. Поддерживает разрешение как java.io.File, если ресурс пути класса находится в файловой системе, но не для ресурсов в JAR. Всегда поддерживает разрешение как URL.

Fore больше деталей проверить API http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/ClassPathResource.html

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/support/ClassPathXmlApplicationContext.html

 Смежные вопросы

  • Нет связанных вопросов^_^