2 Star 0 Fork 0

宋慧青 / guide

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

框架使用介绍

总结一些自己调研的代码示例

spring

spring caching

参考文档
使用方法
  • 导入工程后,直接run CachingApplication
  • 在AppRunner中,写了一些简单的调用方法仅供参考
使用说明
  • 使用@EnableCaching注解开启cache
  • 默认的cache的方式是ConcurrentHashMap,如果需要使用redis的cache,请在项目中引用spring-boot-starter-data-redis,默认会直接切换成redis的cache。
@EnableCaching
@SpringBootApplication
public class CachingApplication {

	public static void main(String[] args) {
		SpringApplication.run(CachingApplication.class, args);
	}

}
  • @Cacheable,应用到读取数据的方法上,即可缓存的方法,如查找方法:先从缓存中读取,如果没有再调用方法获取数据,然后把数据添加到缓存中
  • @CachePut,应用到写数据的方法上,如新增/修改方法,调用方法时会自动把相应的数据放入缓存
  • @CacheEvict,应用到写数据的方法上,如新增/修改方法,调用方法时会自动把相应的数据从缓存中删除
@Component
public class SimpleBookRepository implements BookRepository {

    private static final Logger logger = LoggerFactory.getLogger(SimpleBookRepository.class);

    private List<Book> bookStore = new ArrayList<>();

    @Override
    public void init(Book book) {
        bookStore.add(book);
    }

    @Cacheable(value = "book", key = "#isbn")
    @Override
    public Book getByIsbn(String isbn) {
        logger.info(">> 根据isbn查询图书");
        return bookStore.stream().filter(b -> isbn.equals(b.getIsbn())).findFirst().get();
    }

    @Cacheable(value = "book", key = "#id")
    @Override
    public Book getById(String id) {
        logger.info(">> 根据id查询图书");
        return bookStore.stream().filter(b -> id.equals(b.getId())).findFirst().get();
    }

    @Caching(put = {
            @CachePut(value = "book", key = "#book.isbn"),
            @CachePut(value = "book", key = "#book.id")
    })
    @Override
    public Book saveBook(Book book) {
        book.setId(UUID.randomUUID().toString());
        bookStore.add(book);
        return book;
    }

    @Caching(evict = {
            @CacheEvict(value = "book", key = "#book.isbn"),
            @CacheEvict(value = "book", key = "#book.id")
    })
    @Override
    public Book updateBook(Book book) {
        Book existedBook = bookStore.stream().filter(b -> b.getId().equals(book.getId())).findFirst().get();
        int idx = bookStore.indexOf(existedBook);
        bookStore.get(idx).setTitle(book.getTitle());
        return book;
    }

}

空文件

简介

暂无描述 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/HQSONG/guide.git
git@gitee.com:HQSONG/guide.git
HQSONG
guide
guide
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891