У меня есть следующий метод;Spring @Cacheable не кэширует общедоступные методы
@Cacheable(value = "psgSiteToMap", key = "'P2M_'.concat(#siteName)")
public Map getSiteDetail(String siteName) {
Map map = new HashMap();
.....
//construct map variable here
.......
return map;
}
В то время как запуск проекта, не может использовать класс autowire, к которому относится этот метод. Если я изменяю метод выше, как указано ниже;
@Cacheable(value = "psgSiteToMap", key = "'P2M_'.concat(#siteName)")
private Map getSiteDetail(String siteName) {
Map map = new HashMap();
.....
//construct map variable here
................
return map;
}
public Map getSiteDetailPublic(String siteName) {
return this.getSiteDetail(siteName);
}
Это работает. Есть ли ограничение на @Cacheable
аннотации для общедоступных методов?
Заранее спасибо
Я использовал его в своем проекте для общественных методов, он просто отлично работает. Кроме того, Ehcache [документация] (http://ehcache.org/documentation/user-guide/spring#cacheable) не говорит ничего подобного. В примере, показанном в ссылке, используется общедоступный метод. –
@ShashankKadne В другом классе, я также использую для публичных методов, и он отлично работает. Однако в этом классе он не работает для метода getSiteDetail (String siteName) –