阶段一-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就算是完成了。
 

结束

 

posted @ 2019-12-18 23:23  高山-景行  阅读(460)  评论(0编辑  收藏  举报