您的位置:首页 > 编程语言 > Java开发

SpringBoot-缓存技术1

2017-01-23 17:43 417 查看


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

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

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,数据的key为person.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数据做了缓存”。这表明程序未调用该方法,页面数据直接从缓存中取得。









 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: