如何通过Spring XML配置CacheConfiguration设置键与值类型?
解决Spring XML配置Ignite Cache键值类型不生效的问题
你配置里的问题在于keyType和valueType属性的类型是Class<?>,不是字符串,直接传类全名的字符串Spring无法自动转换为Class对象,所以配置不生效。以下是几种正确的配置方式:
方式一:通过<value>标签指定类型
<bean id="cache" class="org.apache.ignite.configuration.CacheConfiguration"> <property name="name" value="TestCache"/> <property name="keyType"> <value type="java.lang.Class">java.lang.String</value> </property> <property name="valueType"> <value type="java.lang.Class">java.lang.String</value> </property> </bean>
方式二:使用Spring EL表达式(更简洁)
<bean id="cache" class="org.apache.ignite.configuration.CacheConfiguration"> <property name="name" value="TestCache"/> <property name="keyType" value="#{T(java.lang.String)}"/> <property name="valueType" value="#{T(java.lang.String)}"/> </bean>
方式三:通过Class的forName工厂方法创建实例
<bean id="cache" class="org.apache.ignite.configuration.CacheConfiguration"> <property name="name" value="TestCache"/> <property name="keyType"> <bean class="java.lang.Class" factory-method="forName"> <constructor-arg value="java.lang.String"/> </bean> </property> <property name="valueType"> <bean class="java.lang.Class" factory-method="forName"> <constructor-arg value="java.lang.String"/> </bean> </property> </bean>
配置完成后,Ignite会严格校验缓存中存入的键和值类型,确保符合你指定的java.lang.String类型。
内容的提问来源于stack exchange,提问作者Mukeshwar Singh
相关产品推荐
相关产品推荐

