代码拉取完成,页面将自动刷新
总结一些自己调研的代码示例
@EnableCaching
@SpringBootApplication
public class CachingApplication {
public static void main(String[] args) {
SpringApplication.run(CachingApplication.class, args);
}
}
@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;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。