阶段一-01.万丈高楼,地基首要-第3章 用户登录注册模块开发-3-4 用户注册 - 创建用户service
判断用户名是否存在接口就写完了
接下来去写注册,用于创建用户的接口。
service
返回创建完成的用户
前端表单提交的是用户名、密码、和确认密码。包装到一个jsonObject传递到后端。
传到后端以后,它其实属于一种偏向于业务类型的数据包。我们可以统一的定义为BO(Business Object 业务对象)对象,我们定义为UserBO。
我们可以这样去理解,只要是前端传入到后端用于去接收的数据体的话,不管是List还是Object,我们都可以统一的定义为XXXBO。比方这里定义为userBO,以后的话像购物车可以定义为ShoppingCartBO,OrderBO
创建BO
bo统一的放在pojo的工程下。
创建UserBO
在这里面填入一些我们前端传入过来的一些属性。
定义三个属性,然后生成getter和setter
回到Service层
service实现类。
实现方法,先加上事务,事务用的是Required
创建新对象,然后 从userBO里面获取值。密码需要加密。
预先引入的MD5的工具类
先通过md5加密,然后用Base64进行了encode
这里可以来做一个测试,把这里改成imooc
然后运行main方法。
输出加密后的密文
通过getMD5Str这个方法对明文的密码进行加密。这里红线是需要抛出异常。
加try catch
try catch包起来这样就可以了
提供的默认头像。
在最上面定义一个final的变量。因为是stati final修饰的,所以变量名都是大写的。
改成private也是可以的
设置默认的头像
生日一般设置为1900-01-01。这里就涉及到一个时间日期的转换类。
DateUtil时间日期的工具类。用于处理基本的时间日期的
使用转换的方法。字符串转日期类型。
性别
在之前设置一个2就是保密的。但是不推荐去这么写,直接写死不推荐。
所以这里我们会使用一个枚举。
创建枚举的包,enum因为是一个关键字所以不推荐使用为包名。后面加个s叫做enums
我们在后面加上一个s就可以了
创建一个class类然后把class改为enum枚举类。
0 ->女 这种形式 可以理解为键值对
生成构造函数。
生成一个全参的构造函数
Sex.secret.type
创建时间和修改时间
用户的主键
全局唯一化。已经把组件预先的引用了进来。就是下面三个包
这里有个sid,其实就是工具类。
这就是会使用到的id生成器。
注入Sid
这三个包包是org.n3r.idworker。要想注入进来。就必须包能被容器扫描到。
右键复制包的路径
在API工程的启动类里面。用@ComponentScan扫描com.imooc和 org.n3r.idworker这两个包下。默认已经扫描了com.imooc这个包 ,但是这里要加上org.n3r.idworker所以
默认已经扫描了 com.imooc包,但是这里为了加上org.n3r的包。 要用上@ComponentScan的扫描 所以这里也要把com.imooc这个 一起加上。这里是一个数组的形式。
这样sid就已经注入进来,可以用了。
获取到id,然后设置id
可以把这个main方法放开注释。,然后测试下生成的id
一个用的是nextShort一个用的是next
右键来运行。
short就是短id。下面的是长id
测试完,把注释恢复。
保存对象,并返回。user对象返回去,主要用于在页面里面显示一些基本信息。
以上创建用户保存的service就算是完成了。
结束