up:: 用户注册源码走读
用户登陆
实现登陆controller
这里还是将登陆信息存放在session中,session具有这个优势。
service层进行入参检验
我们调用的BeanUtils是org.springframework.beans.BeanUtils;里的
关于UserModel:
说明:学习一下:
BeanUtil.copyProperties的小坑 - 简书
两个不同的包(springframework , apache)中有一个相同名字的类,相同的方法,方法的作用相同,参数个数相同。
就是参数位置不同 - -!
package org.springframework.beans;中的BeanUtils.copyProperties(A,B);
是A中的值赋给B
package org.apache.commons.beanutils;中的BeanUtils.copyProperties(A,B);
是B中的值赋给A
BeanUtils.copyProperties(a, b);
b中的存在的属性,a中一定要有,但是a中可以有多余的属性;
a中与b中相同的属性都会被替换,不管是否有值;
a、 b中的属性要名字相同,才能被赋值,不然的话需要手动赋值;
Spring的BeanUtils的CopyProperties方法需要对应的属性有getter和setter方法;
如果存在属性完全相同的内部类,但是不是同一个内部类,即分别属于各自的内部类,则spring会认为属性不同,不会copy;
spring和apache的copy属性的方法源和目的参数的位置正好相反,所以导包和调用的时候都要注意一下。
BeanUtils.copyProperties只对bean属性进行复制,这里的复制属于浅复制。且不能复制集合和数组。BeanUtils.copyProperties利用反射,直接将对象的引用set进去,并不是深拷贝。
测试登陆
假如没输密码呢?
说明:这里可以回去看看我们是如何统一处理异常的定义通用的返回对象之返回错误的信息
这里突然想到关于@ResquestParam的注解问题:用于防止传参顺序错误。。。
前端登陆看看
附上前端登陆代码
商品列表展示
实现逻辑和前面的用户登陆这些没多大差别,没什么特别的新颖知识点,暂且放下。。。后面可能会进行一些补充。
主要的就是看看下面这张表: