我们学习的springboot微服务框架已经开发了很多次项目了,不过那些大多数我们用的技术方法与思路都是之前开发ssm框架留下来的老旧的思想,已经之前没有发现的毛病都留下来,最近我在开发企业项目之余打算好好的整理一下以前各种测试留下的问题,防止给自己留坑!
1.数据库登录等查询的方法,不能用select * from xxx where xxx = #{xxx} ....如果数据库表已经设置了索引,最好通过索引搜索某一列的值,直接通过值与值的比对确定登录结果,如果数据库的数据有很大的话你又没有配置redis缓存,那么一旦有很多用户登录,那么数据库的压力就会非常大。
2.mybatis默认的驼峰命名,但是mybatisplus框架国人改造后悔默认将驼峰改成下划线格式会不断的报出某一列user_id找不到,数据库语法异常。
3.前后端分离的项目,后端通常会定义返回结果封装类,响应码等 4.thymeleaf要想实现静态资源跳转需要在yml文件自动配置前后缀以及静态资源映射的路径(一般springboot由于约定大于配置的规则会默认注意查看是否具有出入) 5.mapper层的问题通常在你的yml文件配置里的问题导致 (比如?serverTimezone=UTC你没有配置) 6.lombok插件的作用可以在官方上好好查一查,不仅仅局限于实体类开发的简化(个人不推荐使用逆向工程代码生成器生成实体类,原因是我觉得很复杂就不想看了,但是我还是把它认真学了一遍,不是很难,但是代码量大)自带的log日志功能可以调试提示信息
7.端口打不开或者正在显示端口被占用就在黑窗口将进程杀死cmd命令自行网络查询
一、填写application.yml文件配置spring:
application:
name: sprintBootDemo
mvc:
static-path-pattern: /static
@PostMapping("/login")
public R login(HttpServletRequest request, @RequestBody User user) {
String password = user.getPassword();
DigestUtils.md5DigestAsHex(password.getBytes());
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getUserAccount,user.getUserAccount());
User result = userService.getOne(queryWrapper);
if (result == null){
return R.error("账户不存在!登录失败!");
}
if (!result.getPassword().equals(password)){
return R.error("密码错误!登录失败!");
}
request.getSession().setAttribute("user",result.getUserAccount());
return R.success(result);
}
}
六、通用结果封装类(最为响应体发送给前端,严格的前后端分离)
port lombok.Data; import java.util.HashMap; import java.util.Map; @Data public class R七、小程序测试页面发送请求携带数据,测试响应体内容 js{ private Integer code; private String msg; private T data; private Map map = new HashMap(); public static R success(T object) { R r = new R (); r.data = object; r.code = 1; return r; } public static R error(String msg) { R r = new R (); r.msg = msg; r.code = 0; return r; } public R add(String key, Object value) { this.map.put(key, value); return this; } }
Page({
data: {
msg: "",
},
tes01(){
let th = this;
wx.request({
url: 'http://192.168.100.216:8080/user/login/',
method:"POST",
data:{
userAccount:'1234555',
password:'1234555'
},
header: {
一定要这么写,不然会报问题
"Content-Type": "application/json;charset=utf-8"
},
success(res){
console.log(res.data),
th.setData({
msg: JSON.stringify(res.data.data)
})
}
})
}
})
wxml
{msg != null}}">{{msg}}
测试结果
我们发现小程序访问springboot应用程序的测试难度远远比我们的前端要简单,前几天新学的ajax之后还要结合jq学习其他的前端技术,这样对我们后端开发人员来说有点不友好。
这个项目第一步用户登录也就测试完成了,之后我们将会在一周的时间内完成一个前后端分离的企业级开发模式的项目,如果有兴趣可以持续关注我的文章!



