Ich verwende die Spring Redis-Unterstützung, um meine Objekte in Redis zu speichern.Spring RedisTemplate: Serialisieren Sie mehrere Model-Klassen in JSON.Müssen Sie mehrere RedisTemplates verwenden?
Ich habe mehrere DAOs, die verschiedene Modellklassen behandeln:
zB: ‚ShopperHistoryDao‘, die Objekte von ‚ShopperHistoryModel‘ sparen/abrufen ‚ShopperItemHistoryDao‘, die
ich Objekte von ‚ItemHistoryModel‘ behandelt möchte 'JacksonJsonRedisSerializer' verwenden, um meine Objekte zu/von json zu serialisieren/deserialisieren.
Aber im Konstruktor von JacksonJsonRedisSerializer braucht es eine bestimmte Model-Klasse.
JacksonJsonRedisSerializer(Class<T> type)
Heißt das, habe ich getrenntes RedisTemplates für jede unterschiedliche Modellklasse und nutzen sie in entsprechender DAO Implementierung konfigurieren?
Etwas wie:
<bean id="redisTemplateForShopperHistoryModel" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory" />
<property name="valueSerializer">
<bean id="redisJsonSerializer"
class="org.springframework.data.redis.serializer.JacksonJsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="ShopperHistoryModel.class"/>
</bean>
</property>
</bean>
<bean id="redisTemplateForItemHistoryModel" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory" />
<property name="valueSerializer">
<bean id="redisJsonSerializer"
class="org.springframework.data.redis.serializer.JacksonJsonRedisSerializer">
<constructor-arg type="java.lang.Class" value="ItemHistoryModel.class"/>
</bean>
</property>
</bean>
alt, aber vielleicht kann man 'redisJson Serializer' erweitern und die Verwendung von' fasterxml machen:
Im Service können Sie das Modell
Überprüfen Sie diesen Artikel mit zwischenzuspeichern. Jackson, um es generischer zu machen. d. h. es nicht zwingen, an eine einzelne Klassendefinition gebunden zu sein? – oak