繼續學習,學習sringboot案例;
熟悉的三件套;比如做一個表,前端搭建好框架,然后返回給后端一個請求,說要這個表的數據吧;然后通過請求和規定的格式返回給后端之后,我們后端進行接收處理然后進行對數據庫的操作,進行crud,然后,把數據庫操作出來之后,你就可以根據你建立的表去篩查數據返回結果了;然后結果給后端層層封裝返回,然后返回給前端;這樣前端接收到了之后;就正常返回了,全棧就是全都得寫;中間可能要解決跨域問題,還有一個并發量的問題啊,等等等等;
準備工程
每次做一個項目之前的準備工程
既然要接收前端請求,那就需要接收前端請求的依賴比如web,再一個就是比如后端工程需要調用數據庫,那就需要數據庫的依賴比如mybatis的依賴 mysql的驅動,再一個就是lombok的一個注解依賴;然后再對應準備所有的三層架構的代碼;
中間的過程和包就不用再說了,就是三層架構的基本東西,還有一個如果你寫了mapper層的東西,然后他找到了對應的xml文件,那你也可以進行對其的處理;但是有可能識別錯誤;因為同名,就有可能識別到別的地方去;
再一個是前端項目寫完之后,部署就會部署到nginx平臺;而后端就部署到tomcat服務器上了;
他們是通過接口文檔進行響應;一般接口文檔是根據產品需求做出來的,而且一般也是由后端人員去編寫的;畢竟更多的是在于邏輯,而前端人員可能是會更少的參與其中;
restful接口風格規范
意思就是,前后本來就都能用get post,沒人會特別規范場景使用,所以我們更好的是可以去了解把這些所有的請求定義成一個規范;比如就是rest風格;傳統的開發文檔里面的風格是全用get post;現在是定義成 url定位資源,http增刪改查描述動作;增post 刪delete 改put 查 get
返回結果類型;首先呢;需要定義一個返回結果,做成一個類;然后里面就寫code響應碼啊,msg響應信息啊,字符串啊,data是返回的數據,所以說返回這三個東西,給錢的看成功與否,返回的標題,返回的內容;這樣更好分辨;
這確實就是一個很好的規范了;
開始做規范;需求文檔看完之后再去看接口文檔
然后接口文檔里面吧;定義了所有的請求的東西; 相關的東西吧反正都在里面,我們需要跟著進行對照著敲;
這里,在請求路徑里面吧,不是原來是可以寫值的嗎,現在可以進行對請求的限定;比如我們強烈要求,他必須是get或者post類型;比如給他get類型吧;就需要用到一個叫method的關鍵字,你加入進去之后呢,你就可以進行對請求方法的限定,不然,get請求或者post請求都能訪問到,可能不太安全;在requestmapping后,可以增加路徑的url,也可以增加方法的限定比如method;這個東西也很顧名思義了;
為了方便,你也可以直接吧注解名字改了,比如這個是requestmapping吧,可以改成getmapping
直接用getmapping的注解,可以直接進行限定;這就完全限定住了他必須是get請求下的東西;
他的一整個流程是,先看接口文檔里面返回的是什么東西,然后確定自己怎么寫, 先去定義一下返回的結果類型,在控制層進行測試返回;然后,開始寫sql,一層層去寫到mapper層,然后對其進行返回;看一下這個查出來的是個什么東西,然后封裝到集合里面,然后就進行返回,既然之前這個接口通了,就直接在這個接口里面寫要查詢的東西和方法;
1.首先,建立result類,定義返回的結果類型;
package com.example.demo2.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {private Integer code;//響應碼,1 代表成功; 0 代表失敗private String msg; //響應信息 描述字符串private Object data; //返回的數據//增刪改 成功響應,定義幾個方法:public static Result success(){return new Result(1,"success",null);//定義規則,走success方法的時候呢,我們就返回一個Result對象,// 對象里面code=1,msg=success,data=null 先試著調用返回}//查詢 成功響應public static Result success(Object data){return new Result(1,"success",data);}//失敗響應public static Result error(String msg){return new Result(0,msg,null);}
}
2.其次,定義控制層代碼,可以進行對其正常的方法調用;把接口寫通;
記錄日志有什么作用;
基本crud
學會基本的crud就可以進入小公司進行實習了;因為畢竟也就是crud;
梳理思路,現在增,刪,改,查,以及分頁的思路,三層寫完,一層層返回,然后一層層向上傳遞;
再一個就是要封裝好統一的類,比如,result類,這個是返回給前端的統一模型;這是一個類,然后就是比如封裝一個分頁的類,這也是一個返回結果;
比如分頁吧:
梳理一下現在欠缺的東西
1.異常處理、集合框架(List、Set、Map 等)、git,多線程編程以及 IO 流等知識。這些沒有細學過,所有有些時候集合定義起來非常的麻煩;包括json序列化;
2.數據庫事務、鎖機制、存儲過程等高級特性。非關系型數據庫可以學習 Redis,用于緩存數據、實現分布式鎖等場景
3.,Spring AOP(面向切面編程);基于 Spring 的 Spring Boot 框架,它簡化了 Spring 應用的搭建和開發過程,能夠快速構建獨立運行的 Web 應用;另外,Spring Cloud 用于構建微服務架構,涵蓋服務注冊與發現、負載均衡、熔斷器等組件。
4.javaScript 基本寫法,包括 DOM 操作、事件處理、異步編程(如 Promise、async/await)等。
5.前端狀態管理:當應用變得復雜時,學習 Vuex(針對 Vue.js)或 Redux(針對 React)等狀態管理庫,方便管理應用的全局狀態。
堅持牛客啥的刷題拉滿;
再一個是,項目的進度跟不上使用速度,給自己的強度壓力不夠大,就會少很多東西;用不到的時候,就永遠想不起來;簡單來說還是聯系的太少,
集合
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 創建3個User對象User user1 = new User("Alice", 25);//一個user類里面有兩個屬性,名字和年齡User user2 = new User("Bob", 30);//然后創建了三個對象,相當于3個人User user3 = new User("Charlie", 35);// 使用List集合管理多個User對象List<User> userList = new ArrayList<>();//一個集合吧這個類對應的所有對象管理起來;這些人得到了統一,但是別忘了都是這個類的所以方法是 類型<user> 集合名 = new ArrayList<>(); 也就是new一個集合出來,ArrayList就是數組,就是給一個數組類型的集合,分配空間,創建出來;然后這個集合去管理哪個類的對象呢?需要標識;然后就是集合名字;userList.add(user1); // 添加對象userList.add(user2);//用集合名字去添加一個個對象從第一個人加到最后一個人;userList.add(user3);// 遍歷集合,批量操作對象,遍歷這個人的數組:寫法有不同;用這個類,創建一個對象:然后是這個list類型的集合 for (User user : userList) {user.sayHello(); // 調用每個對象的方法}// 統計集合大小System.out.println("總用戶數:" + userList.size()); // 輸出:居然可以直接用集合名字去輸出集合大小;類似遍歷了吧就,確實可以理解成數組的遍歷,本身就是arraylist里面出來的分支;}
}
關于項目請求:
首先每個控制層最好都要有輸出數據;首先是log.info的這種記錄日志,本身他是有那種需要先創建對象的;他現在有了一個注解@slf4j后,就不用再創建對象了;可以直接就入
nacos
簡單將nacos理解成所有配置的配置中心則可,就比如之前的mysql的數據庫配置啊還是什么的;
箭頭函數;
比如我寫一個方法定義;
const 方法名字 = (參數)=>{函數體就行} 就這么記憶,比如一個參數就記得要加等號,再來一個方法體的時候就記得要加=>和{}
最近遇到個問題首先:有個下拉框的加載類似這種的問題存在;他比如
最近的公司基本上就是crud的集合,然后再公司直接學習也不太好,之前看了一次視頻被罵了0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0
哎,只能自己回去學;好沒動力,疲憊;準備辭職!現在學的還遠遠不夠,基本上不讓你做核心業務;