Spring @Cacheable funktioniert nicht - was ist falsch mit meiner config?

Ich habe gesehen, viele Inkarnationen dieses gleiche Problem, aber ich denke, ich habe versucht alle Updates - meine Nutzung ist Recht einfach.

Hatte ich mich schon mit Ehcache, die auch nicht funktioniert hat. So, um auszuschließen, Ehcache Probleme und helfen Sie, zeigen Sie auf etwas grundlegenderes, zog ich SimpleCacheManager und ConcurrentMapCacheFactoryBean.

Hier ist meine config:

<cache:annotation-driven/>

<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
      <property name="caches">
        <set>
          <bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="parentAppIds"/>
        </set>
      </property>
    </bean>

Hier ist meine Methode:

    @Cacheable(value="parentAppIds", key="accountNumber")
        public Long findApplicationId(String accountNsc, String accountNumber) throws EMSException {
....
}

Dies ist eine Methode, die auf einer Schnittstelle, die die Implementierung der Klasse ist der Frühling es geschafft @Service("foo")

Ich versucht, mit 'p0', wie vorgeschlagen hier aber ohne Erfolg. Ich habe keine Kompilierung Probleme und keine Fehler in meinen server-logs, also bin ich zuversichtlich, dass ich alles, was notwendig ist auf meinem classpath; und Namespaces sind alle in Ordnung, da bin ich mit STS, die - so ließ ich pom.xml und im Frühjahr Namespace-Deklarationen zu blockieren Lärm.

Ich bin mit Spring 3.1, Java 1.5 und Websphere 6.1

Das symptom ist, dass die Methode besucht wird mit den gleichen Parametern wiederholt.

Bitte helfen - ich bin hungrig sind und sich weigern, gehen zum Mittagessen, bis ich Nagel diese.

Hinweis: ich vereinfachte meine @Cacheable Erklärung meine aktuelle ist

@Cacheable(value="parentAppIds", key="#p0.concat('-').concat(#p1)")

Weder die Arbeit.

Dank.

** Edit - ich habe ausgeschlossen Websphere als problem durch die Schaffung eines Prüfstandes mit

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(...)

imitiert, was passiert ist. @Cacheable ist einfach nicht funktioniert. Es muss etwas blendend offensichtlich, dass ich vermisst werde. (Ich hatte schon Mittag jetzt)

  • Ich hatte ein problem mit Spring Caching, da rief ich die annotierte Methode aus der gleichen Klasse, zu vergessen, dass dies nicht so ist, wie proxies arbeiten. Sie sagen, dass die annotation ist ein interface, so dass wahrscheinlich nicht dein problem, ich bin einfach nur werfen es da draußen.
  • überprüfen Sie in diesem tutorial, java2practice.com/2013/03/23/...
InformationsquelleAutor HellishHeat | 2013-12-10
Schreibe einen Kommentar