JavaバックエンドSpringBoot第7節:SpringBootでのキャッシュアプリケーション
12528 ワード
JavaバックエンドSpringBoot第7節:SpringBootでのキャッシュアプリケーションキャッシュ構成 @CachePutキャッシュにデータを追加 @Cacheableキャッシュデータ PS:キャッシュは良いもので、個人的には多重化率が高いことは理解していますが、あまり修正しないデータをキャッシュに入れるのが一番です.
キャッシュ構成
まずredis構成を追加
起動クラスに@EnableCachingを付けてキャッシュをオンにします.主に実装クラスを貼り付けて、いくつかの注釈を言います.
@CachePutキャッシュにデータを追加
新しいインタフェースにこの注釈@CachePut注釈を付けてデータをキャッシュに入れます.valueはこのデータの名前で、keyはこのデータのIDと理解できます.
@Cacheableキャッシュデータの取得
@Cacheableのvalueはどの種類のデータを取るか理解でき、keyはこの種類のデータのidである
キャッシュ構成
まずredis構成を追加
redis:
database: 0
host: 127.0.0.1
port: 6379
password:
jedis:
pool:
max-active: 10
max-idle: 8
max-wait: 1000
min-idle: 0
起動クラスに@EnableCachingを付けてキャッシュをオンにします.主に実装クラスを貼り付けて、いくつかの注釈を言います.
package com.hyn.spring.service.impl;
import java.util.List;
import java.util.Optional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import com.hyn.spring.entity.UserInfo;
import com.hyn.spring.repository.UserRepository;
import com.hyn.spring.service.UserInfoService;
@Service
public class UserInfoServiceImpl implements UserInfoService{
private static final Logger log = LoggerFactory.getLogger(UserInfoServiceImpl.class);
@Autowired
UserRepository userInfoDao;
@Override
@CachePut(value = "userinfocache",key="#userInfo.id") //@CachePut , people, key person id。
public UserInfo save(UserInfo userInfo) {
UserInfo u = userInfoDao.save(userInfo);
log.info(" userinfo id( cache key):" + u.getId() + " ");
return u;
}
@Override
@CacheEvict(value = "userinfocache") //@CacheEvict people key id 。
public void remove(Long id) {
log.info(" userinfo id( cache key):" + id + " ");
userInfoDao.deleteById(id);
}
@Override
@Cacheable(value = "userinfocache",key="#userInfo.id") //@Cacheable key person id people 。
public UserInfo findOne(UserInfo userInfo) {
Optional<UserInfo> u = userInfoDao.findById(userInfo.getId());
log.info(" userinfo id( cache key):" + u.get().getId() + " ");
return u.get();
}
@Override
@Cacheable(value = "alluserinfo") //@Cacheable key person id people 。
public List<UserInfo> findAll() {
return userInfoDao.findAll();
}
}
@CachePutキャッシュにデータを追加
新しいインタフェースにこの注釈@CachePut注釈を付けてデータをキャッシュに入れます.valueはこのデータの名前で、keyはこのデータのIDと理解できます.
@Cacheableキャッシュデータの取得
@Cacheableのvalueはどの種類のデータを取るか理解でき、keyはこの種類のデータのidである