做网站工资多少,租点点电脑租赁公司,企业网站模板下载尽在,台海最新24小时消息目录
#x1f95e;1.vo层描述
#x1f37f;2..vo层创建
#x1f32d;3.编写controller层
#x1f953;4.service层
#x1f9c2;5.测试 1.vo层描述 Spring Boot项目中的实体类通常用于映射数据库表#xff0c;包含了业务对象的所有属性。然而#xff0c;前端或其…
目录
1.vo层描述
2..vo层创建
3.编写controller层
4.service层
5.测试 1.vo层描述 Spring Boot项目中的实体类通常用于映射数据库表包含了业务对象的所有属性。然而前端或其他服务的展示需求可能只关心部分属性这时直接传递实体类可能带来信息冗余和安全风险。VO层的引入解决了这些问题提高了数据传递的定制性和灵活性。 注意事项 1. VO对象应该只包含与业务相关的数据和方法不应该包含任何与数据持久化相关的属性或方法2. VO对象应该尽量简单不应该包含复杂的业务逻辑这是Service层的职责3. VO对象的属性和方法应该与前端的展示需求相匹配以便数据传输的最小化。 2..vo层创建 获取登录者信息时我们并不不希望将用户的全部信息都暴露出去也就是不将Dao层作为返回数据类型。VO层的存在就是方便前端获取数据后端将前端的需要的数据做一个整合打包成一个类。将此类暴露出去即可 /*** vo类型避免将UserDo暴露出去*/
Data
public class UserVo {private Long id;/*** 昵称*/private String name;/*** 头像*/JsonProperty(head_img)private String headImg;/*** 用户签名*/private String slogan;/*** 0表示女1表示男*/private Integer sex;/*** 积分*/private Integer points;/*** 邮箱*/private String mail;}
3.编写controller层
controller只作为数据传输层不处理业务逻辑同时引入swagger方便调试并返回包装类 ApiOperation(查询登陆者个人信息)GetMapping(/detail)public JsonData detailLogin() {UserVo loginUser userService.findUserDetail();return JsonData.buildSuccess(loginUser);}
4.service层
创建service后并实现对应的方法我们不传递id而是根据拦截器获取threadLocal来获取登录者信息 1.根据拦截器获取threadLocal进一步获取登录者信息2.让后根据登录者信息根据id查询获取其全部信息3.通过属性对拷将其UserVo暴露出去避免Dao层暴露 /*** 查看登录者个人信息** return*/Overridepublic UserVo findUserDetail() {//从拦截获取threadLocal获取到登录者LoginUser loginUser LoginInterceptor.threadLocal.get();//根据登录者id查询获取登录者全部信息UserDO userDO userMapper.selectOne(new QueryWrapperUserDO().eq(id, loginUser.getId()));//将属性对拷UserVo userVo new UserVo();BeanUtils.copyProperties(userDO, userVo);return userVo;}
5.测试
通过postman或者swagger来测试
postman swagger