首页 > 其他分享 >最牛别缓存,咖啡因

最牛别缓存,咖啡因

时间:2023-01-03 22:56:30浏览次数:35  
标签:缓存 String default 咖啡因 userId value key 最牛别

@Documented
public @interface Cacheable {
	// 缓存名称  可以写多个~
	@AliasFor("cacheNames")
	String[] value() default {};
	@AliasFor("value")
	String[] cacheNames() default {};
 
	// 支持写SpEL,切可以使用#root
	String key() default "";
	// Mutually exclusive:它和key属性互相排斥。请只使用一个
	String keyGenerator() default "";
 //要用于的自定义{@link.org.springframework.cache.CacheManager}的bean名称
//如果没有,则创建默认的{@link org.springframework.cache.interceptor.CacheResolver} String cacheManager() default "";
//自定义{@link.org.springframework.cache.interceptor.CacheResolver}的bean名称使用 String cacheResolver() default ""; // SpEL,可以使用#root。 只有true时,才会作用在这个方法上 String condition() default ""; // 可以写SpEL #root,并且可以使用#result拿到方法返回值~~~ String unless() default ""; // true:表示强制同步执行。(若多个线程试图为**同一个键**加载值,以同步的方式来进行目标方法的调用) // 同步的好处是:后一个线程会读取到前一个缓存的缓存数据,不用再查库了~~~ // 默认是false,不开启同步one by one的 // @since 4.3 注意是sync而不是Async // 它的解析依赖于Spring4.3提供的Cache.get(Object key, Callable<T> valueLoader);方法 boolean sync() default false;

 和上面一样的解释

public @interface CachePut {

	
	@AliasFor("cacheNames")
	String[] value() default {};

	
	@AliasFor("value")
	String[] cacheNames() default {};


	String key() default "";

	/**
	 * The bean name of the custom {@link org.springframework.cache.interceptor.KeyGenerator}
	 * to use.
	 * <p>Mutually exclusive with the {@link #key} attribute.
	 * @see CacheConfig#keyGenerator
	 */
	String keyGenerator() default "";

	
	String cacheManager() default "";

	/**
	 * The bean name of the custom {@link org.springframework.cache.interceptor.CacheResolver}
	 * to use.
	 * @see CacheConfig#cacheResolver
	 */
	String cacheResolver() default "";

	
	String unless() default "";

}

 

public @interface CacheEvict {
    @AliasFor("cacheNames")
    String[] value() default {};  //缓存名称
 
    @AliasFor("value")
    String[] cacheNames() default {}; //缓存名称
 
    String key() default ""; //通过key删除缓存结果
 
    String keyGenerator() default ""; //key的生成规则
 
    String cacheManager() default "";
 
    String cacheResolver() default "";
 
    String condition() default "";
 
    boolean allEntries() default false; //清除所有缓存
 
    boolean beforeInvocation() default false; //在方法执行之前删除缓存,默认是方法执行之后删除缓存
}

 

使用案例

 

//    添加缓存
    @Cacheable(value = Constant.FIVE_SECOND,key ="#userId")
    public Object getUser(long userId){
        return null;
    }
    //    更新缓存
    @CachePut(value =Constant.TEN_SECOND,key ="#userId")
    public Object updateUser(long userId){
        return null;
    }
    //    添删除缓存
    @CacheEvict(value =Constant.THIRTY_SECOND,key ="#userId")
    public Object removeUser(long userId){
        return null;
    }

 

标签:缓存,String,default,咖啡因,userId,value,key,最牛别
From: https://www.cnblogs.com/wangbiaohistory/p/17023613.html

相关文章

  • 大型web系统数据缓存设计
    1. 前言在高访问量的web系统中,缓存几乎是离不开的;但是一个适当、高效的缓存方案设计却并不容易;所以接下来将讨论一下应用系统缓存的设计方面应该注意哪些东西,包括缓存的选......
  • 简单聊聊:递归,缓存,分治,回溯
    一、初识递归递归函数=终止条件+递归关系终止条件:当大问题被拆解成能轻松解决的小问题时,运行终止条件中的逻辑递归关系:定义如何将大问题拆解为小问题例子:小名跑步。......
  • webpack4.15.1 学习笔记(八) — 缓存(Caching)
    目录输出文件名(OutputFilenames)缓存第三方库将js文件放到一个文件夹中 webpack打包模块化后的应用程序,会生成一个可部署的/dist目录,只要/dist目录中的内......
  • http强制缓存、协商缓存、指纹ETag详解
    目录实操目录及步骤缓存分类强制缓存对比缓存指纹Etag摘要及加密算法缓存总结 每个浏览器都有一个自己的缓存区,使用缓存区的数据有诸多好处,减少冗余的......
  • Java:SpringBoot整合Redis实现数据缓存
    目录结构$tree.├──pom.xml└──src├──main│├──java││└──com││└──example││......
  • 详解前端缓存,解决前端换包之后环境中仍会出现旧版效果
    前端项目修改了很多东西:比如bug啊,样式啊。当你把前端项目打包之后满心欢喜的在Nginx(测试环境)换上它,然后在Jira上修改bug状态@测试人员复测。然后测试人员开始找你ba......
  • 缓存工具类
    packagecom.hmdp.utils;importcn.hutool.core.util.BooleanUtil;importcn.hutool.core.util.StrUtil;importcn.hutool.json.JSONObject;importcn.hutool.json.JS......
  • npm---缓存
    一、缓存位置window下的缓存位置(npm全局位置):user\xxx\AppData\Roaming\npm-cache当中的_cacache文件夹二、清理缓存//强制删除缓存npmcacheclean-f//无论在项目中......
  • 操作系统-cache高速缓存
    问题在cache中访问的内存地址为何会带有cache相关的信息,动机是什么?前言平时只知道cpu到内存之间还有一层cache,CPU要去主存找一个数据,第一反应肯定是到......
  • 本地Map缓存
    packagecom.cars.forwardservice.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.GetMapping;importor......