P6
@Slf4j
该注解可调用log.info("打印语句")
将backend和front静态资源放置在resources目录下后,访问http://localhost:8080/backend/index.html
出现白页,也就是tomcat服务器找不到此页面
原因: web端访问静态资源,在templates目录下就能按路径访问,因为默认就会在templates目录下找静态资源
如果要直接访问resource/static,那就需要在application.yml中添加如下配置,否则就会出现404
spring:
mvc:
static-path-pattern: /static/**
参考:解决Spring Boot访问resources目录下的static资源问题(详细版)_springboot获取static目录_普通网友的博客-CSDN博客
编写配置类,配置MVC框架静态资源的映射
classpath对应的resources
P7
登录功能分析,该课程的设计思路,通过前端代码推后端
P8
实体类的属性名是驼峰命名, 数据库表的字段名是下划线命名, 通过配置mybatis-plus进行映射
对Controller类加两个注解
@RestController和@RequestMapping("/path")
@RestController的作用相当于Controller加ResponseBody共同作用的结果
ResponseBody的作用:返回值的数据自动封装为json的数据格式, 写入到response对象的body区
新建返回结果类
对login方法的参数前面加上@RequestBody, 该注解主要用来接收前端传递给后端的json字符串中的数据
使用@RequestBody接收数据的时候,前端的请求方法要使用post方式来进行提交
P9-12
LambdaQueryWrapper
public R<Employee> login(@RequestBody Employee employee, HttpServletRequest request){
//1.将页面提交密码进行md5加密
String password = employee.getPassword();
password = DigestUtils.md5DigestAsHex(password.getBytes());
//2.根据页面提交用户名查询数据库
LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Employee::getUsername, employee.getUsername());
Employee emp = employeeService.getOne(queryWrapper);
在解释LambdaQueryWrapper前, 首先要了解QueryWrapper.eq("数据库字段名字","值"), eq相当于where, 使用QueryWrapper则变为
queryWrapper.eq("username", employee.getUsername());
我们在表字段设计时,很多都是_拼接的,很容易把数据库字段名输入错误, 当使用LambdaQueryWrapper时,不需要输入数据库字段名字,直接写表达式
其中Employee::getUsername的意思就相当于数据库字段username
————————————————
employee表结构中设计了索引, 给username字段加了唯一约束
P13
思考: 鱼皮的用户中心怎么存用户登录信息, 以及退出怎么清除
P17
经过测试发现
"/backend/*" 表示当前路径内容
"/backend/**" 表示当前路径下面所有内容
也就是说, "/backend/**" 包含/backend/index.html, 但"/backend/*"不包含/backend下的子目录
前端调试
在sources中选择要调试的文件, 点击代码行左侧增加断点
注意: 调试运行时右侧的图标应为:
显示为是进入不到断点调试的
1是全部放行, 2是走一步