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

对象私有属性上可缓存注释的条件

南宫森
2023-03-14
@Cacheable(cacheNames = "detailedData", key = "#id", condition = "#currentPackage.getSellingPrice() > -1")
public Map<String, Object> getDetailedTestData(int id,PackageEntity currentPackage) {
/**
some code
*/
}
public class PackageEntity {

    private int sellingPrice;

    public int getSellingPrice() {
        return sellingPrice;
    }

    public void setSellingPrice(int sellingPrice) {
        this.sellingPrice = sellingPrice;
    }
  /**
  some other fields and their getter/setter
  */
}

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html#cache-annotations-cacheable-condition

共有1个答案

程仲卿
2023-03-14

如果指定的字段是私有的,SpEL似乎也会查找该字段的公共getter。

因此字段可以是公共的,也可以有公共getter

@Cacheable(cacheNames = "detailedData", key = "#id", condition ="#currentPackage.sellingPrice > -1")
public Map<String, Object> getDetailedTestData(int id,PackageEntity currentPackage) {
  /**
    some code
  */
}

所以上面的代码对我来说工作正常。

 类似资料:
  • 我试图将Redis与Spring的一起使用,但需要根据Spring Boot风格的应用程序属性有条件地打开或关闭缓存。我的第一次尝试似乎不起作用。 application.properties文件: properties类: 服务方法注释: 结果如下: 有没有人知道问题出在哪里,或者有没有其他的方法可以达到这个目的?

  • 我有一个处理jwt创建的类: 并从resources文件夹中的属性文件中获取jwtSecret和jwtExpirationInMs。 我的单元测试如下所示:

  • 本文向大家介绍如何让一个对象具有私有属性?相关面试题,主要包含被问及如何让一个对象具有私有属性?时的应答技巧和注意事项,需要的朋友参考一下 Symbol 生成的每个值都是独一无二的 用 Symbol 作 key 值 无论是 for in 或 for of都遍历不到 只能用Object.getOwnPropertySymbols 才可以遍历到

  • 假设我有以下课程: 是否可以通过“MyProduct”类验证“code”属性?比如:

  • 映射器类如下所示:

  • 我对Kotlin很陌生,并试图将一个项目从Java迁移到它。我对Kotlin的属性和它们的getters/setter以及可见性范围有点困惑。 我想要实现的是: 所以基本上我需要创建一个具有私有属性的类。此属性应由公共 getter 访问,但它不应具有 setter。此外,此属性应该是内部可变的,以便可以使用某种方法(如 更改其值。 据我所知,我不能将其声明为,因为在这种情况下,它将是完全不可变的