当前位置:   article > 正文

短链接项目day1学习记录

短链接项目day1学习记录

父模块加上:

不参与打包jar包

    <packaging>pom</packaging>

项目包介绍:

接口文档:ApiFox

<dependencies>用于公共的依赖,默认都会下载,<dependencyManagement>只有在子类去引用时才会下载。

@TableName:

@TableName的作用就是在类名和数据库中的表名不一致时确定某个实体类对应数据库中哪个表。

@RequiredArgsConstructor 

@RequiredArgsConstructor 是Lombok的一个注解,简化了我们对@Autowired书写,我们在写Controller层或者Service层的时候,总是需要注入很多mapper接口或者service接口,如果每个接口都写上@Autowired,这样看起来就会很繁琐。

@RequiredArgsConstructor详解&@AllArgsConstructor和@RequiredArgsConstructor区别_@requiredargsconstructor @allargsconstructor-CSDN博客

dao和dto的区别:

 DAO:
data   access   object数据访问对象
主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO 

DTO   :
Data   Transfer   Object数据传输对象
主要用于远程调用等需要大量传输对象的地方。
比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,
客户端用WEB   service来获取数据,没有必要把整个PO对象传递到客户端,
这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。

dto代码如何快速生成:

凝聚力开发-JAVA代码生成平台

LambdaQueryWrapper:

LambdaQueryWrapper是MyBatis-Plus提供的一种查询构建器,可以通过Lambda表达式来构建查询条件,使用起来比传统的SQL语句更加简洁和易读。

LambdaQueryWrapper用法超详细讲解-CSDN博客

统一全局返回实体对象

在进行null判断返回-1状态码的时候,如果报java.lang.IllegalArgumentException: Source must not be null错误,那是因为需要在UserServiceImpl里面进行userDO的判空操作,否则copyproperties函数会报错。

  1. @Service
  2. public class UserServiceImpl extends ServiceImpl<UserMapper, UserDO> implements UserService {
  3. @Override
  4. public UserRespDTO getUserByUsername(String username) {
  5. LambdaQueryWrapper<UserDO> queryWrapper = Wrappers.lambdaQuery(UserDO.class)
  6. .eq(UserDO::getUsername, username);
  7. UserDO userDO = baseMapper.selectOne(queryWrapper);
  8. UserRespDTO result = new UserRespDTO();
  9. if(userDO != null){
  10. BeanUtils.copyProperties(userDO, result); // 此方法需要判空才可以,否则会报错
  11. return result;
  12. } else {
  13. return null;
  14. }
  15. }
  16. }

controller里是禁止写业务代码的,如判断之类的。

异常设计

参考Java开发手册(泰山版)

异常码重点规范。

1)错误码为字符串类型,共 5 位,分成两个部分:错误产生来源+四位数字编号。

说明:错误产生来源分为 A/B/C。A 表示错误来源于用户,比如参数错误,用户安装版本过低,用户支付

超时等问题;B 表示错误来源于当前系统,往往是业务逻辑出错,或程序健壮性差等问题;C 表示错误来源

于第三方服务,比如 CDN 服务出错,消息投递超时等问题。四位数字编号从 0001 到 9999,大类之间的步长间距预留 100。

2)编号不与公司业务架构,更不与组织架构挂钩,一切与平台先到先申请的原则进行,审批生效,编号即被永久固定。

全局异常拦截器

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/817778
推荐阅读
相关标签
  

闽ICP备14008679号