近期项目组要做服务的迁移,但是迁移之后,数据库的数据读取速度非常慢,由于有新的开发任务,也就没有太多关注性能问题。一个同事经过测试发现,可能是数据库的用户密码的加密问题,后来数是没有使用数据库连接池。但是springboot不会自动使用连接池吗?很奇怪。
迁移服务后,一个发送消息的服务突然提示不能使用了,看到日志报错大概为mapper的错误,提示no bind等等。然后找到相关的代码块。准备自己在本地运行,然后调试一下。但是由于实体类不是很好构造,然后自己准备从代码分析入口。看了对应的sql语句,dao接口和mapper文件都在,去看了sql语句,测试执行,也没有什么问题。考虑到服务以前都可以正常使用,应该是迁移服务后做的一些改动。然后我就看到了@MapperScan注解,这个对于扫描的包和类,我做过相关得到测试的,路径不对就会报错。所以我对这个比较敏感。可以看到,它没有具体到接口所在的包,而是在上一层级。于是这个问题就解决了。可以看到,这个问题的解决是依赖于比较扎实的基本功和经验(敏感性),而不是同过调试,浪费很多时间。
关于迁库,我做的总是不那么完整,所以要记一下自己要做什么,然后去做。