@Cacheable аннотация не работает с планом osgi

#java #osgi #ehcache #apache-karaf #blueprint-osgi

#java #osgi #ehcache #apache-karaf #чертеж-osgi

Вопрос:

Как правильно включить ehcache внутри контейнера OSGi с помощью Blueprint. Чтобы включить ehcache для проектов, отличных от osgi, не связанных с blueprint, мы просто используем аннотацию spring:

org.springframework.cache.annotation.Кэшируемый

Внутри java:

 @Cacheable
public void method() {
}
 

В конфигурации xml:

 <beans xmlns:cache="http://www.springframework.org/schema/cache"
  <cache:annotation-driven/>
  ...
 

К сожалению, это не так внутри OSGi и Blueprint, потому что мы не можем смешивать Blueprint с Spring. Я попытался и получил исключение, что обработчик пространства имен не найден. Возможно ли это с аннотацией @Cacheable или нам лучше попробовать ehcache без поддержки spring?

Я использую Karaf 2.3.0.redhat-610379, JBoss Fuse 6.1.0

Ответ №1:

Как вы уже упоминали, один из способов — использовать без spring, другой — использовать Gemini-Blueprint вместо готового плана Aries. Gemini-Blueprint поддерживает пространства имен spring.