-
傳統通過手機號注冊的流程:
獲取用戶的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文件
查看全部
舉報