Теги context предназначены для работы с конфигурацией ApplicationContext, относящейся к низкоуровневым классам - то есть обычно это не те бины, которые важны для конечного пользователя, а скорее бины, которые выполняют всю "черную" работу в Spring, например, BeanfactoryPostProcessors. Следующий фрагмент ссылается на правильную схему, чтобы элементы в пространстве имен context были доступны вам:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!-- определения бинов здесь -->
</beans>
Использование <property-placeholder/>
Этот элемент активирует замену ${…} плейсхолдеров, которые разрешаются по указанному файлу свойств. Этот элемент представляет собой удобный механизм, который настраивает для вас PropertySourcesPlaceholderConfigurer. Если вам требуется больше контроля над конкретной настройкой PropertySourcesPlaceholderConfigurer, то можно явно определить его как бин самостоятельно.
Использование <annotation-config/>
Этот элемент активирует инфраструктуру Spring для обнаружения аннотаций в классах бинов:
-
Модель аннотации
@Configurationв Spring -
@Autowired/@Inject,@Valueи@Lookup -
@Resource,@PostConstructи@PreDestroyиз JSR-250 (при наличии). -
@WebServiceRefв JAX-WS и@EJBв EJB 3 (при наличии) -
JPA
@PersistenceContextи@PersistenceUnit(при наличии) -
Аннотация
@EventListenerв Spring
В качестве альтернативы можно явно активировать отдельные BeanPostProcessors для этих аннотаций.
@Transactional из Spring; для этой цели можно использовать элемент
<tx:annotation-driven/>. Аналогично, аннотации кэширования Spring также должны быть явно активированы.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ