-
传统通过手机号注册的流程:
获取用户的otp(需要按照一定的规则生成otp验证码)2.
将otp验证码同对应用户的手机号关联
将otp验证码通过短信通道发送给用户
通过spring包装的httpservletrequest他的本质是一个?。内部拥有threadlocal方式的map, //去让用户在每个线程中,处理自己对应的request,并且有threadlocal清除的机制
查看全部 -
返回的data返回的是exception异常类的反序列化json,强转成BusinessException
//定义exceptionhandler解决未被controller层吸收的exception异常 @ExceptionHandler(Exception.class) @ResponseStatus(HttpStatus.OK) @ResponseBody public Object handlerException(HttpServletRequest request, Exception ex){ Map<String, Object> responseData = new HashMap<>(); if(ex instanceof BusinessException){ BusinessException businessException = (BusinessException)ex; responseData.put("errCode", businessException.getErrorCode()); responseData.put("errMsg", businessException.getErrMsg()); }else { responseData.put("errCode", EmBusinessError.UNKONW_ERROR.getErrorCode()); responseData.put("errMsg", EmBusinessError.UNKONW_ERROR.getErrMsg()); } return CommonReturnType.create(responseData, "fail"); }
首先定义一个commonReturnType,能够用status和data返回所有json序列化方式的所有的固定的对象,供前端解析使用。摒弃tomca和http自带err页处理。定义common的BusinessErr方式统一管理想要的错误码。然后在baseController中定义通用exceptionhandler类解决未被controller层吸收的exception,并且使用errcode和errmsg统一的方式吃掉了所有内部不可预知的异常
查看全部 -
通过springboot自带的springmvc的handlerexceptio解决通用的异常处理的方式。
对于web的系统来说,controller层的异常某种意义来说是业务处理的最后一道关口。如果controller层的异常被处理掉,那么返回前端之前会有一个很好的钩子,不处理掉用户体验会变差。
查看全部 -
枚举可以有属性,是个类。定义全局错误码。分布式开发时需要通用的文件做状态码管理。构造函数中super()就是继承的类自身会有初始化机制。
BusinessException和EmBussinessError都共同继承CommonError对应的方法。外界不管是从BusinessException还是EmBussinessError都可以有state和message的组装定义。并且需要共同实现setErrMsg方法,可以用于将原本em中定义的message覆盖掉。
查看全部 -
为了给前端返回有效信息,CommonReturnType把正确与否的信息和因该返回的数据一起给前端。
查看全部 -
dataobject层负责数据的存储到service层的传输。组装核心领域模型进行下一步处理。
查看全部 -
用户信息和密码存储在不同的表,逆向工程生成不同的对象,要处理是时候要全部的信息,新建model。
用户的密码不必展示给前端,所以在controller加一层模型对象。
查看全部 -
运行不了可能是xml文件有重复?删除mapping下xml重新生成
查看全部 -
逆向工程生成文件,配置application.properties,spring接入数据库
查看全部 -
看一看数据库密码是不是正确的
查看全部 -
导入mysql配置,连接池配置
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.41</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.2</version> </dependency>
配置mybatis的自动生成。
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <dependencies> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.41</version> </dependency> </dependencies> <executions> <execution> <id>mybatis generator</id> <phase>package</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <!--允许移动生成的文件--> <verbose>true</verbose> <!--允许自动覆盖文件--> <overwrite>true</overwrite> <configurationFile> src/main/resources/mybatis-generator.xml </configurationFile> </configuration> </plugin>
查看全部 -
秒杀开始时间采用joda-time的DateTime类型。
查看全部 -
通过落单减库存(而不是支付减库存)来解决超卖。
查看全部 -
该配置文件可以从MyBatis官网下载:
查看全部 -
创建MyBatis-generator.xml文件
查看全部
举报