SpringBoot整合MyBatis和Redis思路(四)

一.SpringBoot整合MyBatis
步骤如下
1.搭建环境
1)数据准备,建库建表;
2)用Spring Initializr创建项目,并添加依赖(Mysql/MyBatis/mysql驱动包);
3)根据数据库的表建对应的实体类。数据库中表的字段名与实体类的属性名最好一致,否则无法映射过来,
当然也可在全局配置文件中进行相关配置;
4)编写配置:
I)在application.properties编写mysql数据库连接配置。
II)添加数据源,数据源的作用是处理一些增删改查的sql语句。
III)由于不被识别SpringBoot直接识别,所以要添加配置文件来读取Druid数据源,即将
该配置文件中Druid属性值注入到DataSource类对象中。
2.开始整合,整合方式有两种:注解方式和配置文件方式
法1:用注解方式整合
I)写接口文件,对于一些常用的方法进行抽象出来放到接口中,并在抽象方法上添加具体的sql实现。
II)并在启动类上添加@MapperScanner("xxx")扫描包路径。
III)写测试类。即写@RunWith(SpringRunner.class)开启测试运行器、 @SpringBootTest加
载上下文,然后将要测试的类的对象注入到当前类,并调用注解的、后面的具体的sql实现。
法2:用配置文件整合
I)写接口文件,对于一些常用的方法进行抽象出来放到接口中。
II)写映射文件,其中namespace为接口的引用名,右键点击copy reference即可,另外,sql实
现的id名必须调用的方法名一致。
III)在全局配置文件中指定MyBatis的映射文件的路径和实体类的别名。
IV)写测试类。步骤同上。
---------------------------------------------------------------------------------------------------
二.SpringBoot整合Redis
步骤如下
1) 添加Spring Data Redis依赖启动器;
2)编写实体类; 其中类上加的@RedisHash("xxx")指定操作实体类对象在Redis数据库中的存储空间名字,对@Id指定
的是实体类的主键会在对应的数据库中生成对应的id,用@Indexed标识二级索引字段方便查询。
3)编写接口; 可继承CrudRespository接口来写一个自定义接口,并在中添加所需要的抽象方法。
4)进行连接配置; 在全局配置文件下添加Redis数据库连接配置,指定Redis服务器地址、连接端口、密码等;
5)测试; 同一般测试一样,@RunWith(SpringRunner.class)、@SpringBootTest等注解加载上下文环境
并运行测试环境,并注入要测试的类对象,并往里面赋值(同面向对象的形式),最后调用方法输出结
果。

说明:最好参考如下步骤总结的,更为通用和详细,当然也可与上面结合起来看和练习,但上面这种是用于JPA框架来作为数据连接和
处理的。
有两种方式,一种是基于注解的,一种是基于api的。
步骤如下
1.首先准备数据,用Spring Initializr创建项目,选择相关依赖或在pom中配置相关依赖,
在访问连接配置之前要在终端输入redis-server命令开启redis缓存,在全局配置文件中写
访问连接配置,如Redis服务主机ip地址、端口、密码、缓存有效期。
2.实体类创建,过程中除了set/get/toString方法,还要实现序列化接口,否则缓存刷新有
异常。
3.写Repository接口及SQL实现;
4.写业务层
注解方式:
首先用@Service注解注入到Spring容器中,将Repository接口的实例注入当
前类的对象。对于方法的增删改查,常将@Cacheable、@CachePut、@CacheEvict等注解放
到方法上,其中@Cacheable一般对查询结果进行缓存存储,先进行缓存查询,如果为空则进行
方法查询,并将结果进行缓存,若缓存已有数据,则不进行方法查询,而是直接用缓存数据;而
@CachePut是缓存的更新,一般放到数据更新业务的方法上;@CacheEvict常用于数据的删除
操作,其作用是先进行业务数据的删除,然后再清除缓存。

API方式:
对于API方式,主要是将上面的注解改为用RedisTemplate模板来实现,代码相对多一点,
但更加灵活,且易于控制。其中查询数据首先是用redisTemplate.opsForValue().get()
获取对象,如果没有获取到就用set方法,设置redisTemplate.opsForValue().set(),另
外这个xxx.set也可用于缓存数据更新,而删除的话一般用于数据查询之后,再进行缓存删除,
方法为redisTemplate.delete();

5.写控制层逻辑
调用Service方法和数据,主要是路径映射需要用@PathVariable和另外,对于方法或类
上需要用@RequestMapping("/"),当然方法上也可用@GetMapping来映射。
6.写测试类,运行启动类,开始测试。
posted @ 2020-02-04 11:02  贰零一八  阅读(430)  评论(0编辑  收藏  举报