踩坑日记:行之Blog微信小程序开发过程中碰到的问题及处理方案(持续更新...)

此开源项目是笔者的第一个自己动手写的项目…之前一直都是只看书和视频去不停学理论却很少去动手,最近感觉自己还是缺少项目的磨练,于是在每天安排固定的学习时间之余,开始动手自己实现一些项目。在开始做项目后,发现了自己很多的问题,也踩了一些坑,于是把这些记录下来,当作第一个项目的纪念吧…项目地址放在下面(内有项目介绍),因为是第一个项目,所以求轻喷…

github地址

微信小程序端Java后端管理后台前端

gitee地址

微信小程序端Java后端管理后台前端

问题:*.YML文件没有spring小叶子图标

就是像下图这样…

  • 首先,进入setting下的这里,如图:

  • 如果发现图中第四个蓝圈的区域没有*.yml的话就点击右边+号把它加上去,再点击 Apply就可以了。

  • 但是…我还真是个倒霉蛋…我发现我原本就有这个*.yml的,但是我.yml文件就是没有spring小叶子图标啊,然后我气急败坏地把它删掉了(咋删的:选中,点击右边的-号),然后又尝试性地加了回来,点击了下apply,结果…,yml文件就有spring小叶子图标了…真是柳暗花明啊…

  • 总结:最后…引用一句“名言”:“重启解决90%的问题“。

问题:@Mapper报红

在已经在maven中导入相关依赖后,@Mapper报错。看了右边maven依赖,发现有导入相关依赖啊,咋回事啊…

不懂就问…于是去百度了下,百度时用的是关键词“@Mapper报红”,搜索出来的都是mybatis版本的问题,要换版本,但是我用的版本很高了啊…尽管如此,我依旧试了下,发现…没用。

看了半天,发现右边maven中的相关模块是灰色的…这咋回事

百度了下,很快嗷,结果出来了,说是maven中的设置把我这个模块给忽略了…当时我就流眼泪了,这咋忽略了呢…于是我马上去maven的设置中看,果然,如下图,maven把这个模块给我忽略了…

于是我马上把它取消掉,果然,@Mapper不报红了…感谢搜索引擎,感谢踩过坑的前辈…

##Invalid bound statement (not found) 问题

需要提前说明的是,此项目是一个多模块项目,以下问题主要是多模块下的场景。

跟据我所遇到的情况来说,这种问题的发生原因有两种:

  • 一种发生在service
  • 一种发生在dao

问题在service层出现时的解决方法

啥意思呢?首先,我们先来看第一种的错误信息,如图:

可以看到,说的是在service下的test方法(这个方法是自己写的,其中调用了dao的方法)出现了问题,根据字面意思就是无效的绑定说明。

此时需要检查启动类的MapperScan注解,此时我的注解如下图

而我的包结构如下:

这样一来,MapperScan就会扫描com.xingzhi下的service接口了,但在service接口中没找到映射的mapper,所以报错了。我们需要把扫描的路径改为如下(把路径限定在只有mapper接口的包下面):

这样,就解决问题了。

问题在dao层出现时的解决方法

这种问题其实在多模块项目里比上一个问题好解决,但是也是一个容易忽略的问题,错误打印如下:

可以看出,问题发生在dao层(这里我的dao用mapper来命名了),这种问题一般是dao的接口类和mapper没有对上,可能会有以下几种原因:

  • mapper.xml中的一些对应信息如(namespace、id)没对上
  • mybatis中的mapper-locations没有定位到正确的mapper的位置

第一情况解决方法很简单,检查…改正

主要是第二种情况,第二种情况情景还原如下:

没修改前我的mapper-locations如下:

因为我的是多模块项目,且我的mapper是在其他模块的。在这种情况下,mybatis扫描不到其他模块的mapper,这时我们把其改为下图所示就能解决问题了。

小小总结以下:遇到这两个问题我查了很多资料,方得以解决。我还是太菜了啊…基础不过关啊…还要努力…

spring cloud gateway 500报错

详细报错内容:

就是类型转换的问题

首先,我们先排查下gateway模块下有没有这个

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

或者依赖其他的模块中有没有,有的话就用exclusions把它去掉

如果还没解决问题的话就看看有没有用到servlet的包,因为访问页面时候是通过servlet进行远程调用获取结果集的,而访问网关是用webflux直接接收的,所以当gateway网关微服务引入servelt时候,就会使用servlet接收,但是响应却是webflux,最后会出现类型转换异常的错误。

解决方案:

  • 去掉 spring-boot-starter-web 依赖
  • 去掉有 servlet 的依赖

持续更新中…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值