亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • springboot項目實戰筆記

    查看全部
  • dataobject和model的區別:dataobject僅僅是映射數據庫;model是業務模型,該模型的屬性會來自于多個數據庫

    查看全部
  • 課堂筆記:

    3.8?用戶模型管理--getotp頁面實現(16:00)
    ????1.?完成?getotp.html?頁面樣式的編寫。
    ????2.?完成?button?提交業務的編寫
    ????????????先實現頁面交互,再實現頁面美化。
    ????????????a.?引入?jquery.js
    ????????????b.?編寫?js?代碼,實現?button?的?click?事件,用于向后端發送獲取短信驗證碼的請求。
    ????????????????//?綁定?otp?的?click?事件用于向后端發送獲取短信驗證碼的請求
    ????????????????//?使用?ajax?方式發送異步請求完成業務。
    ????????????????//?為?Controller?中的?@RequestMapper?添加指定的?method,consumes(將其聲明到控制層基類中)
    ????????????????//?注意判空處理
    ????????????????//?注意?button?自定義?click?方法后,該方法內應該返回?false,因為使用?ajax?發送請求處理業務,不需要常見的事件冒泡給?form?提交?POST?方法。
    ????????????????//?注意程序中已經進行了統一異常處理,因此會盡可能返回了?success?HTTPstatus?=?200
    ????????????c.?因為是從本地?html?中發送請求到?localhost?的?url?因此會出現跨域安全異常,雖然請求能夠到達控制層,并成功被控制層方法處理業務并返回,但是?ajax?請求會認為該請求是不安全的,因此走不到?success?塊中,并會給瀏覽器報錯。
    ????????????????在?springboot?中處理?ajax?跨域請求的方式:只要讓?response?時刻返回?'Access-Control-Allow-Origin'?為所有的域,即?*?即可。
    ????????????????SpringBoot?提供給我們一個簡單注解方式?@CrossOrigin?實現所有?SpringBoot?中所有請求返回對象帶上一個?Access-Control-Allow-Origin?標簽,即可實現跨域處理。
    ????????????????@CrossOrigin?可使用在?controller?上,或方法級別上,也可以同時使用,Spring將合并兩個注釋屬性以創建合并的CORS配置。
    ????????????????該注解可以有2個參數:
    ???????????????????origins?:允許可訪問的域列表
    ???????????????????maxAge:準備響應前的緩存持續的最大時間(以秒為單位)。
    
    ????3.??Ajax跨域請求問題,設置一下屬性就可以了,
    ????????前端?Ajax?請求中添加?xhrFields:?{withCredentials:?true},
    ????????后端?controller?層添加?@CrossOrigin(origins?=?"*",?allowCredentials?=?"true")?就可以訪問了


    查看全部
  • 課堂筆記:

    3.6?用戶模型管理-otp驗證碼獲取
    ????0.?基礎能力建設
    ????????????springboot?+?MVC?+?mybatis?框架搭建,外加常態的錯誤異常定義、正確的返回值類型定義。
    ???????模型能力管理
    ????????????領域模型管理(如?user?對象就是一個用戶領域的一個模型),包括完整的生命周期。用戶模型、商品模型、秒殺模型等。
    ????????????????用戶信息管理:
    ????????????????????otp?短信獲取
    ????????????????????otp?注冊用戶
    ????????????????????用戶手機號登錄
    
    ????1.?用戶獲取?otp?短信驗證碼
    ????????a.?需要按照一定的規則生產OTP?驗證碼
    ????????b.?將?OTP?驗證碼通對應用戶的手機號關聯(一般使用Redis處理,此處采用?session?模仿實現)
    ????????????使用?spring?注入方式注入一個?HttpServletRequest?對象,該對象其實是通過?spring?bean?包裝的?request?對象本質是?proxy?模式(spring?在注入?HttpServletRequest?時,發現如果注入的是?一個?ObjectFactory?類型的對象時,就會將注入的?bean?替換成一個?JDK?動態代理對象,代理對象在執行?HttpServletRequest?對象里的方法時,就會通過?RequestObjectFactory.getObject()?獲取一個?新的?request?對象來執行。),即多例模式?。
    ????????????Spring能實現在多線程環境下,將各個線程的request進行隔離,且準確無誤的進行注入,奧秘就是ThreadLocal.?它的內部擁有?ThreadLocal?方式的?map,去讓用戶在每個線程中處理自己對應的?request?中的數據,并且有ThreadLocal清除的機制。
    ????????c.?將?OTP?驗證碼通關短信通道發送給用戶


    查看全部
  • 3.5?定義通用的返回對象-異常處理02
    ????1.?為?handlerException()?方法繼續添加?@ResponseBody?注解即可將返回的?object?返回給前端頁面。
    ????????????該方式會將異常的所有棧信息序列化后輸出到前端頁面,因此還需要繼續處理,只將前端需要的異常信息返回給前端。
    ????2.?將?ex?強轉為?BusinessException?,然后使用其?getErrCode、getErrMsg?方法獲取前端需要的異常信息,將其封裝為?Map?后封裝到?CommonReturnType?對象中,然后再返回給前端。
    ????3.?優化:使用?CommonReturnType?的靜態方法?create?構造對象并返回。
    ????4.?繼續完善該方法。
    ????????????判斷?exception?是否為?BusinessException?類型,如果不是則為?CommonReturnType?對象賦值?errCode?為?EmBusinessError?枚舉中的?UNKNOWN_ERROR?的?code?和?msg。
    ????5.?繼續優化異常處理。
    ????????????因為該處理方式是所有?controller?都需要的方式,因此將其抽象為?BaseController?中的方法,然后讓其他?controller?組件去繼承該?controller。
    ????6.?總結:a.?定義一個?CommonReturnType,?能夠用對應的?status,?object?的方式返回所有的被?JSON?序列化對象,供前端解析使用,摒棄掉了使用?httpstatuscode?+?內線?tomcat?自帶的?error?頁面方式去處理響應數據以及異常。
    ????????????b.?并且定義了一個?BusinessException?,統一管理我們自定義的錯誤碼。
    ????????????c.?然后,在?BaseController?中定義一個所有?Controller?的基類,使用其中注解了?@ExceptionHandler?的方法來處理所有被?Controller?層捕獲的異常。
    ????????????????按照異常的種類由2種處理方式,一種是自定義?BusinessException,?其中有自定義的?error?的?code?和?msg,一種是未知的異常,采用統一處理方式。
    ????????????d.?異常處理方法上還可以添加日志相關組件,方便項目運行記錄與錯誤排查。


    查看全部
  • Enum 中的 int 類型的狀態碼,如果以 0 開頭,則會在 controller 組件中返回到前端時,如果使用了 JSON 序列化,解析時則會省略數字前的 0,因此,不應該使用 0 開頭。

    正例:10001、10002、20001

    反例:00001、00002

    查看全部
  • 3.2?定義通用的返回對象-返回正確信息
    ????1.?通用的返回對象。方便前端解析數據。
    ????????首先,定義返回對象類型?class?com.miaoshaproject.response.CommonReturnType,?包含?String?status,?Object?date?2個屬性。
    ????????然后,定義?二重奏創建對象方法,?create(Object?result)-(該方法中如果沒給?status?參數則給出默認值"success")?調用?create(Object?result,?String?status),
    ????2.?返回的數據為?Object?對象。
    ????????????若?status?=?success?,則返回前端需要的?JSON?數據。
    ????????????若?status?=?fail?,?則返回通用的錯誤碼格式。
    ????3.?修改?controller?層中的方法,將返回值修改為?CommonReturnType?類型的對象。
    ????4.?查看運行效果。


    查看全部
  • 3.1?使用SpringMVC方式開發用戶信息
    ????1.?搭建?MVC?層次組件
    ????????創建?controller?層目錄,并編寫?UserController,包含一個?getUser(Integer?id)?方法,注意添加注解。
    ????????創建?service?層目錄,并編寫?UserService?接口以及?UserSServiceImpl?實現類,包含?getUserById(Integer?id)?方法,其中使用了?UserDOMapper.
    ????2.?除了?UserDO?表示與數據庫對應的數據對象類外,?service?層業務領域也應該有與?DO?對象不同的對象?model,?即業務領域對象,用來封裝?DO?對象,避免直接將?DO?對象返回給前端。
    ????????創建?service?層領域模型對象:?com.miaoshaproject.service.model.UserModer,?其中封裝從?DO?到?model?封裝方法。
    ????????為?userPasswordDOMapper?添加?selectByUserId(Integer?id)?方法,實現通過用戶?id?查找對應的用戶加密密碼信息。
    ????3.?編寫?userController?中的?getUser()?方法,返回領域模型?userModel,?測試是否可以通過前端成功訪問。
    ????4.?創建一個前端模型對象?UserVO,?用來封裝可以返回給前端的對象數據信息,不包含前端非必要屬性字段。其中包含?convertFromModel(model)?方法,用來將核心領域模型?model?對象封裝成可供前端使用的?VO?對象。
    ????5.?需要注意的是?DO、VO、Model?對象中的屬性類型必須一致,字段名同樣要一致,才可以使用?BeanUtils.copyProperties(srcObj,?tarObj)?方法,否則會丟失不一致屬性中的數據。


    查看全部
  • 2.4?Mybatis自動生成器的使用方式
    ????1.?mybatis-core版本要和mybatis-maven-plugin版本要一致
    ????2.?mybatis-generator.xml?中的配置
    ????3.?配置?maven?Command?line?:?mybatis-generator:generate?-e?-X
    ????????注意?:?generate?前是?:
    ????4.?生成后,需要給?mapper?接口添加注解
    ????5.?application.properties?中添加數據源配置
    ????????
    ????????#?接入?mybatis?對應的數據源
    ????????spring.datasource.name=miaosha
    ????????spring.datasource.url=jdbc:mysql://127.0.0.1:3306/miaosha?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
    ????????spring.datasource.username=root
    ????????spring.datasource.password=1234
    ????????
    ????????#?使用?druid?數據源
    ????????spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    ????????spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver


    查看全部

舉報

0/150
提交
取消
課程須知
本課程會直接從SpringBoot應用開始介紹,開始學習前,需要同學們熟悉JavaWeb開發基礎知識,對MVC架構有基本了解。同時,課程實踐部分,會有一些簡單的數據庫以及前端操作,這需要你對數據庫、HTML基礎、JS、JQ有一些了解。
老師告訴你能學到什么?
1.SpringBoot的基本構成與使用。 2.領域驅動的模型分層設計思路與基本實現流程。 3.基礎電商項目中用戶管理、商品管理、交易管理及秒殺活動管理的全套秒殺應用。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!