当前位置: 首页 > 知识库问答 >
问题:

用于密钥的Spring可缓存连接参数

谭琛
2023-03-14

我正在使用Spring缓存框架和Redis。下面是我使用的缓存

@Cacheable(value = "oauth2token", key="#value + #type")
public OAuth2Token findOneByValueAndType(String value, String type);

我只是想创造一把我知道的钥匙。这会产生错误

14:20:21,199 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/veip-web].[Resteasy]] (http-/0.0.0.0:8080-63) JBWEB000236: Servlet.service() for servlet Resteasy threw exception: org.springframework.expression.spel.SpelEvaluationException: EL1030E:(pos 0): The operator 'ADD' is not supported between objects of type 'null' and 'null'

因为当我不指定键为flows时。

@Cacheable(value = "oauth2token")
public OAuth2Token findOneByValueAndType(String value, String type);
@Cacheable(value = "oauth2token", key="#type.contact(#value)")
public OAuth2Token findOneByValueAndType(String value, String type);

这里出了什么问题。

共有1个答案

吕皓
2023-03-14

您很可能没有每个参数名称的运行时信息(#value不知道)。更安全的方法是使用始终有效的#p#A别名。key=“#p0+#p1”应该可以解决这个问题。

话虽如此,我也不会那么做。如果您要在另一个带注释的方法中重用键,我将keygenerator实现为bean,并在需要处理这两个值的方法中传递该bean的引用。这样您就可以共享(和测试)代码并避免重复。

 类似资料:
  • . 注意IAddItMethod不是指定@Cacheable的那个。我们可以有其他实现(如MethodImplThree)而不使用@Cacheable注释。 我们有一个简单的beans.xml,其中包含: 有什么我忘了说明的吗?配置?注释? 提前道谢!

  • 我有一个Spring应用程序,它使用MyBatis进行持久化。我使用ehcache是因为速度对于这个应用程序很重要。我已经设置并配置了MyBatis和Ehcache。我使用一个名为“mybatis”的单一缓存,因为否则为每个实体创建单独的缓存将是荒谬的。 这是我的电子缓存。xml。 这是我的mybatis映射器界面的一个示例。 因为我有一个共享缓存,所以我需要一种方法使我的密钥对域对象是唯一的。作

  • http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html#cache-annotations-cacheable-key上面的链接显示了当一个方法的所有参数都不需要缓存键时如何指定一个键,缓存键是默认的。但是如何在可缓存注释中指定多个param(但不是方法参数列表中的全部)作为缓存的键呢

  • 问题内容: 我正在运行centos 6.使用apache处理php和nginx来处理脚本图像和CSS。 我已经安装了memcached服务器。 我还为php安装了模块。 我创建了一个新的php文件 我检查了memcached状态,它正在运行。 我总是收到“无法连接”。 我试图将值从‘127.0.0.1’更改为’localhost’-仍然无法正常工作。 输出量 connect和addServer有什

  • <代码>java。安全KeyStore使用KeyStoreSpi实现来提供不同类型的KeyStore。基本OpenJDK支持JKS、JCEKS和PKCS12密钥库类型。前两个实现专有的Sun/Oracle格式,PKCS12是一个公共标准。 我知道JCEKS确实支持对称密钥,PKCS12则不支持。还有哪些实现(如Bouncy Castle)支持对称密钥?开发人员似乎想隐藏此类信息。E、 g.Boun

  • 我按照web上一些教程使用redis设置Spring缓存,