Wie cache-Antwort mit Jersey?
Ich versuche zu entwickeln, die restful API mit Jersey.Ich habe BEKOMMEN, API ' s für einen bestimmten get-operation meine BEKOMMEN, ist die Einnahme gleichen Zeit von der gleichen client.
Ist es möglich, die cache-Antwort? Alle Zeiger geschätzt wird.
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie CacheControl, eTag - Folgen Sie den nachstehenden Beispielcode
Ersetzen
resource
mit Ihrem Ressource-Instanz.Zusammenfassung der Lösungen:
Anfrage als parameter der Methode
Schnittstelle:
Umsetzung:
Nachteile:
detail
Request
ausgesetzt istRückgabetyp
Reponse
ist genericfehlende Grammatik der Rückgabetyp im WADL
client-proxy mit unnötigen parameter
Request
Anfrage als Instanz-variable
Schnittstelle:
Umsetzung:
Nachteile:
Rückgabetyp
Reponse
ist genericfehlende Grammatik der Rückgabetyp im WADL
dependency injection mit
@Context
ist kompliziert, siehe https://stackoverflow.com/questions/33240443ShallowEtagHeaderFilter als web-filter -
web.xml:
Schnittstelle:
Umsetzung:
Nachteile:
schlechte server-performance, siehe JavaDoc
funktioniert nur auf uncommitted Antwort
keine Unterstützung von schwache ETag
Benutzerdefinierte WriterInterceptor als JAX-RS Interceptor
Interceptor:
Siehe auch: ServerCacheInterceptor (Resteasy)
Schnittstelle:
Umsetzung:
Nachteile:
keine vordefinierten interceptor für Jersey verfügbar
schlechte server-performance
keine Unterstützung von schwache ETag
hässlichen workaround mit
WebApplicationException
Könnten Sie eine beliebige caching-Mechanismus anwendbar für standard-java-zusammen mit Jersey, wie Ehcache.
Müssen Sie nur achten Sie auf stellen Sie sicher, dass Ihre Daten im backend hat sich nicht verändert.
Hier ist ein einfaches Beispiel mit
Ehcache
:Vor kurzem habe ich lösen die ähnlichen (wenn nicht dem gleichen) problem. Als Nebeneffekt ergibt sich daraus die folgende Bibliothek entstanden: https://bitbucket.org/Andrey-Lebedenko/caching-filter
Die Art, wie es verwendet werden kann, ist wie folgt:
Hoffe, es hilft.