java day18

繼續學習,學習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
哎,只能自己回去學;好沒動力,疲憊;準備辭職!現在學的還遠遠不夠,基本上不讓你做核心業務;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921875.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921875.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921875.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

并發編程原理與實戰(二十八)深入無鎖并發演進,AtomicInteger核心API詳解與典型場景舉例

無鎖并發演進背景 隨著系統高并發的壓力越來越大&#xff0c;傳統同步機制在高并發場景下的性能瓶頸和缺點可能會逐漸顯露&#xff1a; &#xff08;1&#xff09;性能損耗&#xff1a;synchronized等鎖機制會導致線程阻塞和上下文切換&#xff0c;在高并發場景下性能損耗顯著。…

整體設計 之 緒 思維導圖引擎 之 引 認知系統 之 引 認知系統 之 序 認知元架構 之5 : Class 的uml profile(豆包助手 之7)

摘要&#xff08;AI生成&#xff09;三層中間件架構的約束邏輯體系1. 架構定位與功能分工三個中間層&#xff08;隔離層/隱藏層/防腐層&#xff09;構成數據處理管道&#xff0c;分別承擔&#xff1a;隔離層&#xff1a;跨系統數據轉換處理對象&#xff1a;異構數據&#xff08…

iframe引入界面有el-date-picker日期框,點擊出現閃退問題處理

前言&#xff1a;iframe引入界面有el-date-picker日期框&#xff0c;點擊出現閃退問題處理。問題情況&#xff1a;點擊開始日期的輸入部分&#xff0c;會出現閃退情況&#xff0c;該組件是iframe調用的內容問題分析&#xff1a;事件冒泡&#xff0c;點擊與聚焦的時候&#xff0…

docker 拉取本地鏡像

要在Docker中拉取本地鏡像&#xff0c;通常有以下幾種實現方法&#xff1a; 使用docker pull命令&#xff1a;可以使用docker pull命令從本地鏡像倉庫拉取鏡像。例如&#xff0c;如果本地鏡像的名稱是my-image&#xff0c;則可以運行以下命令拉取鏡像&#xff1a; docker pull …

嘉立創EDA從原理圖框選住器件進行PCB布局

1、先選中需要布局的模塊的相關器件2、設計-》布局傳遞3、在PCB會選中模塊相關的元器件&#xff0c;拖動進行布局4、依次將每個模塊都分類出來5、板框設計&#xff1a;如果有要求大小&#xff0c;可以先將單位設置為mm&#xff0c;然后畫出來板框的尺寸

http接口冪等性

實現 HTTP 接口的冪等性是確保多次相同請求產生相同結果的重要設計原則&#xff0c;尤其在網絡不穩定或分布式系統中非常關鍵。以下是幾種常見的實現方式&#xff1a;1. 基于冪等性令牌&#xff08;Token&#xff09;的實現適合支付、訂單創建等場景&#xff0c;步驟如下&#…

【華為OD】貪吃的猴子

文章目錄【華為OD】貪吃的猴子題目描述輸入描述輸出描述示例示例一示例二解題思路解法一&#xff1a;前綴和枚舉法Java實現Python實現C實現解法二&#xff1a;滑動窗口法Java實現Python實現C實現解法三&#xff1a;優化的動態規劃法Java實現Python實現C實現算法復雜度分析解法一…

Flie ,IO流(一)

一.File&#xff0c;IO流概述二.File文件1.File文件對象的創建&#xff08;路徑&#xff1a;&#xff09;2.常用方法1:判斷文件類型、獲取文件信息&#xff08;注意&#xff1a;&#xff09;3.常用方法2:創建文件、刪除文件&#xff08;creatNewFile&#xff08;&#xff09;會…

第2講 機器學習 - 導論

我們正處在一個"數據時代"&#xff0c;更強的計算能力和更豐富的存儲資源使數據總量與日俱增。然而真正的挑戰在于如何從海量數據中提取價值。企業與組織正通過數據科學、數據挖掘和機器學習的技術體系構建智能系統應對這一挑戰。其中&#xff0c;機器學習已成為計算…

如何解決pip安裝報錯ModuleNotFoundError: No module named ‘python-dateutil’問題

【Python系列Bug修復PyCharm控制臺pip install報錯】如何解決pip安裝報錯ModuleNotFoundError: No module named ‘python-dateutil’問題 摘要 在日常 Python 開發過程中&#xff0c;我們經常會遇到各種 pip install 的報錯&#xff0c;尤其是在 PyCharm 2025 控制臺環境下&…

GitHub Pages 部署

地址&#xff1a;https://github.com/ 參考&#xff1a;https://blog.csdn.net/qq_45802269/article/details/127310952?ops_request_misc&request_id&biz_id102&utm_term%E5%9F%BA%E4%BA%8Egithub%E5%B9%B3%E5%8F%B0%EF%BC%8C%E5%8F%91%E5%B8%83vue%E9%A1%B9%E7%…

redis分布式鎖為什么采用Lua腳本實現。而不是事務

Redis 分布式鎖使用 Lua 腳本而非事務&#xff0c;核心原因是 Lua 腳本能保證分布式鎖操作的 “原子性” 和 “靈活性”&#xff0c;而 Redis 事務在某些場景下無法滿足分布式鎖的核心需求。一、Redis事務的局限性redis分布式鎖的核心是先判斷自己是否持有鎖&#xff0c;然后在…

Flutter之riverpod狀態管理Widget UI詳解

一、riverpod狀態管理中所涉及到的widget UI組件對比分析UI 組件狀態類型語法形式特點ConsumerWidget有狀態無狀態形式最常用&#xff0c;通過WidgetRef訪問provider&#xff0c;所謂無狀態&#xff0c;是指ConsumerWidegt不像StatefulWidegt那樣創建state,在它內部不可以定義狀…

什么是測試

文章目錄軟件測試是干什么的&#xff1f;軟件測試開發工程師是干什么的&#xff1f;測試工程師是干什么的&#xff1f;軟件測試開發工程師和測試工程師的區別效率工具能不能替代測試人員&#xff1f;測開人員的上手路線找工作/實習的時候怎么確定自己找的是測開還是測試呢&…

搭建分片集群

主從和哨兵可以解決高可用、高并發讀的問題。但是依然有兩個問題沒有解決&#xff1a;海量數據存儲問題高并發寫的問題使用分片集群可以解決上述問題&#xff0c;如圖:分片集群特征&#xff1a;集群中有多個master&#xff0c;每個master保存不同數據每個master都可以有多個sla…

在ubuntu系統中如何將docker安裝在指定目錄

在 Ubuntu 系統中&#xff0c;Docker 默認安裝路徑&#xff08;程序文件&#xff09;通常在/usr/bin等系統目錄&#xff0c;而核心數據&#xff08;鏡像、容器、卷等&#xff09;默認存儲在/var/lib/docker。若需將數據目錄指定到其他位置&#xff08;這是更常見的需求&#xf…

服務器都是用的iis, 前端部署后報跨域,不是用同一個服務器 是前端項目的服務器做Nginx轉發,還是后端項目的服務器做Nginx轉發?

當服務器環境為 IIS&#xff08;而非 Nginx&#xff09;&#xff0c;且前端、后端部署在不同服務器導致跨域時&#xff0c;核心思路與 Nginx 場景一致&#xff0c;但實現工具從「Nginx」替換為「IIS 配置」。此時依然存在 “后端服務器配置跨域頭” 和 “前端服務器配置反向代理…

【大前端】前端生成二維碼

前端生成二維碼有很多方法&#xff0c;常見的做法是使用 JavaScript 庫 來生成二維碼。下面整理幾種常用方案&#xff0c;并附示例代碼。1?? 使用 qrcode 庫&#xff08;推薦&#xff09;qrcode 是一個非常流行的前端 JS 庫&#xff0c;可以生成 Canvas 或者 SVG 的二維碼。安…

LeetCode 刷題【71. 簡化路徑】

71. 簡化路徑 自己做 解&#xff1a;遍歷檢查 class Solution { public:string simplifyPath(string path) {int p 0;string res;while(p < (int)path.size()){//情況1&#xff1a;遇到"/./" 》p跳過"/."if(p < (int)path.size() - 2 && p…

《算法闖關指南:優選算法-雙指針》--01移動零,02復寫零

&#x1f525;個人主頁&#xff1a;草莓熊Lotso &#x1f3ac;作者簡介&#xff1a;C研發方向學習者 &#x1f4d6;個人專欄&#xff1a;《C知識分享》《Linux 入門到實踐&#xff1a;零基礎也能懂》《數據結構與算法》《測試開發實戰指南》《算法題闖關指南》 ??人生格言&am…