首页>代码>spring整合ehcache的入门级别demo分享,通过junit来测试>/zuidaima_spring-cache-test/src/main/java/com/zuidaima/spring/service/UserService2.java
package com.zuidaima.spring.service;

import org.springframework.cache.Cache;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cache.annotation.Caching;

import com.zuidaima.spring.entity.User;

public interface UserService2 {

	@Caching(put = { @CachePut(value = "user", key = "#user.id"),
			@CachePut(value = "user", key = "#user.username"),
			@CachePut(value = "user", key = "#user.email") })
	public User save(User user);

	@Caching(put = { @CachePut(value = "user", key = "#user.id"),
			@CachePut(value = "user", key = "#user.username"),
			@CachePut(value = "user", key = "#user.email") })
	public User update(User user);

	@Caching(evict = { @CacheEvict(value = "user", key = "#user.id"),
			@CacheEvict(value = "user", key = "#user.username"),
			@CacheEvict(value = "user", key = "#user.email") })
	public User delete(User user);

	@CacheEvict(value = "user", allEntries = true)
	public void deleteAll();

	@Caching(cacheable = {
			@Cacheable(value = "user", key = "#id"),
			@Cacheable(value = "user", key = "#result.username", condition = "#result != null"),
			@Cacheable(value = "user", key = "#result.email", condition = "#result != null") })
	public User findById(final Long id);

	@Caching(cacheable = {
			@Cacheable(value = "user", key = "#username"),
			@Cacheable(value = "user", key = "#result.id", condition = "#result != null"),
			@Cacheable(value = "user", key = "#result.email", condition = "#result != null") })
	public User findByUsername(final String username);

	@Caching(cacheable = {
			@Cacheable(value = "user", key = "#email"),
			@Cacheable(value = "user", key = "#result.id", condition = "#result != null"),
			@Cacheable(value = "user", key = "#result.email", condition = "#result != null") })
	public User findByEmail(final String email);

	@Caching(evict = { @CacheEvict(value = "user", key = "#user.id", condition = "#root.target.canEvict(#root.caches[0], #user.id, #user.username)", beforeInvocation = true) })
	public void conditionUpdate(User user);

	public boolean canEvict(Cache userCache, Long id, String username);
}
最近下载更多
zzhua195  LV6 2020年4月18日
15088605151@139.com  LV12 2018年11月27日
hellozui  LV11 2018年6月13日
孙启政  LV7 2018年1月26日
15850583289  LV3 2018年1月12日
ttiandy  LV6 2018年1月12日
346058210  LV6 2018年1月11日
罗辉娟  LV12 2018年1月9日
annazhang  LV29 2017年10月7日
SHDAN6  LV6 2017年7月28日
最近浏览更多
lsq54365  LV14 2023年7月10日
微信网友_6145301522206720  LV1 2022年9月23日
and123456  LV11 2022年4月13日
tmdgdx  LV9 2022年4月1日
archerK3  LV8 2020年12月25日
jammes  LV3 2020年6月8日
海汶汐  LV3 2020年6月7日
qwsada123  LV2 2020年5月25日
youwuzuichen  LV10 2020年4月30日
zzhua195  LV6 2020年4月18日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友