SpringBoot入门(十六)-缓存技术

转摘:http://blog.sina.com.cn/s/blog_c90ce4e0010329x8.html

在实际开发工作中,如果频繁查询数据库, 是不是会给数据库服务器带来很大的压力呢?

因此,我们需要对查询出来的数据进行缓存, 这样客户端只要从数据库查询了一次数据,这批数据就会放入缓存中,以后再次查询时可以从缓存中读取,这样是不是会快很多呢?

SpringBoot支持很多种缓存方式:redis、guava、ehcahe、jcache等等。

下面我们使用SpringBoot最简单的缓存方式来对SpringBoot的缓存技术做一个简单的介绍(SpringBoot的版本是1.4.0.RELEASE)。

 

SpringBoot默认的缓存方式就是在内存中通过ConCurrentMap结构来进行数据的缓存。

1.      首先,新建一个SpringBoot工程,结构如下

 

2.      编辑POM.XML,添加相关依赖包

 

3.      编辑application.properties文件,对数据库连接参数进行配置​

4.      编写实体类Person.java(此处省略了getter和setter方法)​

5.      编写数据库访问接口PersonRepository.java, 此处用了jap框架, 继承JpaRepository接口即可实现基本的数据库增删改查操作.​

6.      编写业务类接口PersonService.java,声明一些业务方法​

7.      编写业务接口实现类PersonServiceImpl.java​

注:   @CachePut 缓存新增的或者更新的数据到缓存中其中缓存名称为person,数据的keyperson.id

          @CacheEvict:  从缓存person中删除key为id的缓存数据

          @Cacheable: 读取缓存为person中key为id的缓存数据。

@CachePut@CacheEvict@Cacheable若未指定key, 则方法参数作为key保存到缓存中。

 

8.      编写访问控制器类PersonController.java

 

9.      编写程序入口

 注: 此处一定要加上@EnableCaching来开启SpringBoot的缓存支持

 

10.      测试访问:

       A.我们先保存一组数据到缓存中

            此时页面输出如下:​

           控制台输出如下:

        B.此时再次从页面上访问id=21的数据, 控制台不会再打印Hibernate的查询语句以及“为id、key为:21数据做了缓存”。这表明程序未调用该方法,页面数据直接从缓存中取得。

 

猜你喜欢

转载自anhongyang125.iteye.com/blog/2354560