Использование ehcache 3 с аннотациями Spring (без использования Spring Boot)
Я пытаюсь заставить Ehcache 3 работать с Spring 4 без использования Spring boot.
Вот рабочий пример, который использует Spring Boot, но я работаю над существующим приложением, которое не использует Spring Boot.
Проблема заключается в том, что Spring-context-support (который добавляет аннотации кеша Spring) ожидает, что CacheManager Ehcache будет в этом classpath: net.sf.ehcache.CacheManager
Однако в Ehcache 3 класс CacheManager находится в другом пути к классам: org.ehcache.CacheManager.
Итак, в основном Spring-context-support не поддерживает Ehcache 3. И вам придется использовать аннотации JSR-107 напрямую, а не аннотации, предоставляемые Spring.
Но, видимо, это работает с Spring Boot. Возможно, есть способ заставить его работать и со стандартным приложением Spring. Это то, на что я надеюсь. Я действительно хочу использовать собственные аннотации Spring вместо аннотаций JSR-107.
2 ответа
Действительно, в Spring Caching нет встроенной поддержки Ehcache 3.
Хорошей новостью является то, что вы достигаете того, чего хотите, с поддержкой JCache, которую имеет Spring Caching, поскольку Ehcache 3 является совместимой реализацией JCache. И как только у вас есть JCache CacheManager
доступно в контексте вашего приложения, ничто не заставляет вас использовать аннотации JCache. Вы можете продолжать использовать Spring Caching без каких-либо проблем.
Вы можете найти демонстрацию этого здесь.
Примечание: я работаю над Ehcache
Это простой и рабочий пример всех необходимых изменений с ehcache 2 на 3: https://imhoratiu.wordpress.com/2017/01/26/spring-4-with-ehcache-3-how-to/
Это ссылка для новой конфигурации: