十次方微服务day1 day2总结 (springdatajpa,跨域,统一异常处理 缓存)

1 .更深入了解了一点springdataJpa的使用

在这里插入图片描述

我们只需要用需要对数据访问的接口继承Repository接口和其子就可以拥有一系列对数据访问的方法。
其中PagingAndSortingRespository提供分页和排序功能

// JpaRepository

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190227181621731.png?x-ossprocess=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dtaDExNTIxNTEyNzY=,size_16,color_FFFFFF,t_
JpaRepository继承PagingAndSortingRepository,PagingAndSortingRepository又继承CrudRepository,也就是说我们平时自定义的接口只要继承JpaRepository,就相当于拥有了增删查改,分页,等等功能。

JpaSpecificationExecutor

在这里插入图片描述
用于做复杂的条件查询 可以用来自己封装条件 如下图

在这里插入图片描述
在这里插入图片描述

上述的操作其实还是比较麻烦的 其实我们可以直接按照方法命名规则来按照条件操作比如
在这里插入图片描述
我们只需要定义出这个方法 就会被翻译成这个sql 语句 select * from tb_enterprise where hot = ?
怎么样是不是很方便。
但是当我们需要进行更复杂的操作和条件 那么方法名就会变得很长 或者多表联合查询 该怎么做呢?比如

在这里插入图片描述

这时我们就可以使用sql语句
我们只需要在方法上加入@Query注解 在里面定义sql语句就行了 修改保存操作需要再加@Modifying
在这里插入图片描述
再这里可以看到如果想实现分页功能 只需要在方式上加一个Pageable参数就可以实现分页功能 这十分的方便 而Mybatis则需要使用一些分页插件

注意!如果不加入 nativeQuery = true 这个属性 这个语句就会被认为jpql语言
注意!如果加了@Modifying 就必须声明@transaction 否则会报错
在这里插入图片描述
在这里插入图片描述

2.用@CrossOrigin解决跨域问题

在这里插入图片描述

3.统一异常处理

在这里插入图片描述

扫描二维码关注公众号,回复: 5390053 查看本文章

我们只需要定义上述注解就能统一拦截异常并进行处理

4.文章和活动模块用到了缓存

查询文章用到缓存 并设置过期时间 这里用到springdataredis
首先导入依赖 并且修改配置文件 配置redis所在的服务器
在这里插入图片描述
然后自动装配RedisTemplate 这里比用Jedis来操作方便许多
在这里插入图片描述
修改和删除时要同时删除缓存里的数据

活动模块用到了spring cathe 这个的缺点是不能设置过期时间

使用方法先在启动类上注明
在这里插入图片描述
表示为GatheringApplication添加@EnableCaching开启缓存支持 然后

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wmh1152151276/article/details/87986292
今日推荐