缓存注解自定义

Posted SmallCuteMonkey80%

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缓存注解自定义相关的知识,希望对你有一定的参考价值。

文章目录

定义


/**
 *redis缓存注解参数
 */
@Documented
//作用域,可以作用在method(方法),参数,字段
@Target(ElementType.METHOD,ElementType.PARAMETER, ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RedisCacheParam 

	/**
	 * 过期时间类型
	 * @return
	 */
	public TimeUnit unit() default TimeUnit.MINUTES;
	
	/**
	 * 过期时间长度
	 * @return
	 */
	public int timeout() default 30;
	
	/**
	 * 缓存归类
	 * @return
	 */
	public String cacheName() default "";
	
	/**
	 * 数据库
	 * @return
	 */
	public String database() default "";
	
	/**
	 * 返回空对象继续查询数据库
	 * @return
	 */
	public boolean nullToSearch() default false;





使用

	@RedisCacheParam(timeout=3,unit=TimeUnit.HOURS,cacheName=CacheNameConstant.SysMenu)
	public List<MenuVo> queryMenuList(List<Long> levels) 
		// 角色对应的菜单
		PaginationSupport ps = universalDao.findAllByHQL(buildAllMenu(levels));
		List<MenuVo> menuList = new ArrayList<MenuVo>();
		if (ps.getItems() != null && !ps.getItems().isEmpty()) 
			for (Object obj : ps.getItems()) 
				SsSysMenu menu = (SsSysMenu)obj;
				MenuVo vo = new MenuVo();
				vo.setId(menu.getName());
				vo.setName(menu.getTitle());
				vo.setAccessUrl(menu.getLocation());
				vo.setImage(menu.getImage());
				vo.setTarget(menu.getTarget());
				if(menu.getParent() !=null)
					vo.setParentId(menu.getParent().getName());
				
				menuList.add(vo);
			
		
		return menuList;
	
	


以上是关于缓存注解自定义的主要内容,如果未能解决你的问题,请参考以下文章

springbootii-cache 基于注解的声明式缓存

深入浅出Spring原理及实战「开发实战系列」Spring-Cache扩展自定义(注解失效时间+主动刷新缓存)

ssm+redis整合(通过aop自定义注解方式)

SpringBoot RedisCacheConfig自定义设置

SpringBoot RedisCacheConfig自定义设置

spring扫描自定义注解并进行操作