SpringBoot_Redis_JPA整合使用
SpringBoot是这几年特别火的一个WEB应用程序开发框架,就我个人的理解的话其实SpringBoot没什么特别的内容可讲,因为内部还是Spring+SpringMVC那套东西,只不过把之前繁琐的配置现在都给重新又封装了一次,然后以约定大于配置指导思想为纲要,将大部分的配置直接省略了;再就是内置了Tomcat,这点就比较好了,最重要的是可以和SpringCoud配合,这就比较666了,总之,还是非常棒的。下面简单入门实操一下:
Idea可以快速创建SpringBoot工程,当然,手工创建才能感受乐趣,下面手工创建一下:
1. IDEA新建工程,选择maven工程,点击下一步,输入工程名称点击完成

2. 编辑新创建的工程的pom文件,引入parent标签,这个是spring-boot基础的标签,选择相应的版本,关于版本,可以上网搜搜,选择合适的版本,这里选择2.1.12.RELEASE.
3. Spring Boot将大部分开发工程中的常用场景基本按照功能封装了一下,比如WEB开发,SpringMVC时代需要自己一个一个去导入相关的maven依赖包,导入日志记录,导入AOP包,导入json包等等,其实一个WEB开发,导入的包基本是固定的,自己导包其实也没什么,关键是包的版本选择问题,做过开发的都知道,jar包冲突问题是最莫名奇妙的,自己管理jar包难免会遇到这种问题,因此SpringBoot将这些个场景所需要的jar包依赖重新封装,根据当前配置的SpringBoot版本,自动管理这些jar的版本,引入相关的依赖,是不是很爽。SpringBoot就像一个积木的基座,需要开发的各个功能场景就是一个个已经搭建好的模块框架,而每一个模块框架又是由一系列相关依赖jar共同构建的。SpringBoot时代,只需要拉入需要的功能场景模块,就可以了,让人更加关注于业务。而不是框架搭建。
假设我们需要搭建一个WEB工程,那么引入web的starter,那么相关的jar就会自动引入工程。
4. Web所需的jar已引入,接下来就该引入操作数据库的扳手了,很多,JPA算一个,MyBatis算一个,Hibernate也算一个等等,这里先用JPA去做数据库的操作,那么引入依赖。
5. 最后引入数据库的驱动jar,这里选用mysql数据库去操作,那么mysql的驱动jar如下:
6. 开发目录下新建启动类,类似于正常的一个类的main启动类
内容如下:
@SpringBootApplication |
7. 在resources目录下创建一个固定名称的配置文件如下图所示,内容暂时为空
8. 既然配置了mysql驱动那么必然要配置mysql连接信息,不然配置驱动干嘛,抽呢? 假如不配置驱动呢,其实也可以用,SpringBoot有一个内置小型数据库H2, 好多人可能没用过,这个数据库类似于内存数据库,小型的就一个jar包,也可以将数据存为db文件,支持增删改查。扯远了,说回mysql,配置驱动,就需要配置数据库连接信息。在resources下的application.properties文件中配置如下数据库连接信息内容:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver |
到此为止,框架搭完。。。。。。。。
停顿3秒, 简单不。简直不要太傻瓜。
启动一下看下:
下面我们创建一个ConTroller测试一下,Controller代码如下:
package com.test.controller; |
浏览器输入地址测试:
成功!
下面将Service层Dao层实体类Bean对象编写下,如下:
Jpa方式下的Dao,只是一个接口。。。
@Repository |
Service层:
@Service
|
Controll中的调用方法:SpringBool已经自动引入了jackson,会将返回的对象处理成json格式,注意我写的controller是@RestController,也就是Restful风格的接口,前后端分离的。
@GetMapping(value = "/getAllUser")
|
页面测试截图:
数据被全部查出来了。
和Redis的整合, 假如真实的环境中,如果说对于数据变化很小,但是经常高频访问的数据,可能会放到Redis中去做缓存,减少数据库的访问操作,提高响应能力和处理,因此需要和Redis连接并做操作。
和之前的操作一样,首先pom文件中引入redis的依赖:
之后改造Controller的刚才获取全部user数据的接口,如下:
@RestController } |
表中代码表示,若redis缓存中没有,则从库中查出来,之后往缓存中放一份,然后返回。
若redis缓存中有,则直接返回。
执行效果如下:
第一次redis中未保存数据:
第二次切之后再次刷新:如下
如果Redis不在本地,并且端口等信息有变化,则要在application.properties配置文件中设置相应的redis的配置值。
至此,一个简单的SpringBoot+Redis+JPA的框架结束。 SpringBoot真正的做到了让开发者更关注业务,而不是框架的维护。点赞。