開發測試框架一 - 創建springboot工程及基礎操作

一、創建及運行方式

1. 從官網導入:

注意:由于我的java版本是1.8;所以選中了spring2.7.14;如果你的java版本是9及以上,選中spring3相關的同時Java 版本也要對應起來

2. 創建第一個get請求

?創建Controller? package及類,創建以下的代碼:

package com.example.aitestmini.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;//與前端請求的類
@RestController
public class firstController {//需求:get請求,路徑/first, 前端顯示hello springboot@GetMapping("/first")String first(){return "Hello Spring!";// http://localhost:8080/first}
}

運行:

運行AitestMiniApplication的run()方法

在瀏覽器訪問http://localhost:8080/first,應該是展示hello spring

8080端口被占用,使用以下命令查看占用端口的pid:
lsof -i :8080
執行下面命令kill調進程:
kill -9 pid

3. 打包

mvn package 
執行以上命令,會在target/目錄下自動生成jar包

4. 運行方式

方式一:
之前已經說過了,執行run()方法
方式二:
java -jar target/aitest-mini-0.0.1-SNAPSHOT.jar
運行以上命令,jar是剛才打出來的jar包
方式三:
mvn spring-boot:run
執行以上命令

二、端口管理

1. 常見端口實名方式

如果配置文件不聲明端口,默認按照80801. application.properties配置文件管理端口:
server.port=80812. application.yml配置文件管理端口:
server:port: 80823. 運行命令聲明端口
mvn clean package
java -jar -Dserver.port=8083 target/aitest-mini-0.0.1-SNAPSHOT.jar

2. 不同環境配置不同的端口

  • 針對環境創建不同的配置文件

?

?

?3. 運行不同環境端口的方式

1. application.properties管理:spring.profiles.active=dev2. application.yml管理
spring:profiles:active: dev3. 在pom文件管理<profiles><profile><id>dev</id><properties><profilesActive>dev</profilesActive></properties></profile><profile><id>qa</id><properties><profilesActive>qa</profilesActive></properties><!-- 默認qa環境--><activation><activeByDefault>true</activeByDefault></activation></profile></profiles>添加上面的依賴,在application.properties管理:
spring.profiles.active=@profilesActive@

三、Get請求Demo

1. 普通get請求的聲明方式

1. 方法名前面使用:@GetMapping("/first")
2. 方法名前面使用:@RequestMapping(path = "/first",method = RequestMethod.GET)
@RestController
public class firstController {//需求:get請求,路徑/first, 前端顯示hello springboot
//    @GetMapping("/first")@RequestMapping(path = "/first",method = RequestMethod.GET)String first(){return "Hello Spring!";// http://localhost:8080/first}
}

2. 帶有參數的Get請求

需求:
http://localhost:8081/topic/{id}
對應瀏覽器顯示地址:{id}為內容
// 如果不想寫@PathVariable("id")里面的id,需要保證傳入的id->sid
@RestController
public class BaseGetWithIdController {@GetMapping("/topic/{id}")String getTopic(@PathVariable("id") String tid){return "請求的id為 " + tid + " 的內容!!!";}
}

3. 在queryParam拼接

需求:http://localhost:8081/native?s={sid}
對應瀏覽器顯示地址:這是一個本國地址為:{sid}的內容
@GetMapping("/native")String getNative(@RequestParam("s") String sid){return "這是一個本國地址為:" + sid + " 的內容!";}

升級:

如果當s=66,打印不一樣的內容:

@GetMapping("/native")String getNative(@RequestParam("s") String sid){return "這是一個本國地址為:" + sid + " 的內容!";}@GetMapping(path = "/native", params = {"s=66"})String getNative1(@RequestParam("s") String sid){return "這是一個本國地址為:" + sid + " 的內容!getNative1";}

4. 在controller前面加@RequestMapping("/t")

效果:相當于全部的鏈接前面加了/t會被自動識別

代碼:

 @RequestMapping(path = "/first",method = RequestMethod.GET)String first(){return "Hello Spring!";// http://localhost:8080/first}

5.?PathVariable參數非必填

//1. @PathVariable(value = "did",required = false)中的required默認是true,可以設置為false
//2. 聲明完成之后, 對應的訪問路徑會有2中,需在GetMapping里面說明value = {"/topic/{did}/u","/topic/u"}@GetMapping(value = {"/topic/{did}/u","/topic/u"})String getTopic1(@PathVariable(value = "did",required = false) String topid,@RequestParam(defaultValue = "66") int sid){return "請求的id為 " + topid + " 的內容!!!并且參數sid為" + sid + "的內容!!!";}//http://localhost:8081/t/topic/99/u//http://localhost:8081/t/topic/u

6.?RequestParam非必填及提供默認值

    @GetMapping("/top/{city}/{year}")String getRUIWithPara(@PathVariable int year,@PathVariable String city,@RequestParam(defaultValue = "GDP",required = false) String desc,@RequestParam(defaultValue = "45666") int money){return "{"+ year + "}年{" + city + "}人均{" + desc + "}為:{" + money + "}";}
1. desc非必填,但是GetMapping的值只有一個,因為desc的類型不是PathVariable
2. @RequestParam(defaultValue = "GDP",required = false) String desc說明RequestParam的required如果為false可以非必填

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

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

相關文章

mysql滑動窗口案例

獲取學科最高分 SELECT DISTINCT name,subject,MAX(score) OVER (PARTITION by subject) as 此學科最高分數 from scores;獲取學科的報名人數 select DISTINCT subject,count(name) over (partition by subject) as 報名此學科的人數 from scores; 求學科總分 SELECT DISTI…

JavaScript高級:常見設計模式

設計模式是在軟件開發中重復出現的問題的解決方案&#xff0c;它們是經過驗證的、被廣泛接受的最佳實踐。設計模式可以讓我們避免重復造輪子&#xff0c;提高代碼質量和可維護性。在本文中&#xff0c;我們將介紹幾種常見的設計模式&#xff0c;以及它們的實現和應用。 1. 單例…

Conda(Python管理工具)

1.簡介 Conda是一個開源的包管理器和環境管理器&#xff0c;主要用于管理Python&#xff0c;但也可以用于其他語言。它主要用于安裝、管理和更新軟件包及其依賴項&#xff0c;以及創建、保存、加載和切換不同的開發環境。Conda可以在Windows、MacOS和Linux系統上使用&#xff…

Spring Boot + Vue3前后端分離實戰wiki知識庫系統十二--用戶管理單點登錄開發一...

目標&#xff1a; 在上一次https://www.cnblogs.com/webor2006/p/17533745.html我們已經完成了文檔管理的功能模塊開發&#xff0c;接下來則開啟新模塊的學習---用戶登錄&#xff0c;這塊還是有不少知識點值得學習的&#xff0c;先來看一下整體的效果&#xff0c;關于效果官網有…

2023全國大學生數學建模競賽C提思路模型代碼

目錄 1.C題思路模型&#xff1a;比賽開始后&#xff0c;第一時間更新&#xff0c;獲取見文末名片 2.比賽時間&#xff1a;2023年9月7日18點到2023年9月10日20點 3 全國大學生數學建模競賽常見數模問題 3.1 分類問題 3.2 優化問題 詳細思路見此名片&#xff0c;開賽第一時間…

YOLOv8目標檢測算法

YOLOv8目標檢測算法相較于前幾代YOLO系列算法具有如下的幾點優勢&#xff1a; 更友好的安裝/運行方式速度更快、準確率更高新的backbone&#xff0c;將YOLOv5中的C3更換為C2FYOLO系列第一次嘗試使用anchor-free新的損失函數 YOLOv8簡介 YOLOv8 是 Ultralytics 公司繼 YOLOv5…

FiboSearch Pro – Ajax Search for WooCommerce 商城AJAX實時搜索插件

FiboSearch Pro是最受歡迎的WooCommerce 產品搜索插件。它為您的用戶提供精心設計的高級 AJAX 搜索欄&#xff0c;并提供實時搜索建議。默認情況下&#xff0c;WooCommerce 提供非常簡單的搜索解決方案&#xff0c;沒有實時產品搜索&#xff0c;甚至沒有 SKU 搜索。FiboSearch&…

網絡基礎(一)橋接網絡

網絡基礎知識 橋接網絡 橋接網絡是一種網絡設計技術&#xff0c;其目的是將兩個或多個網絡段連接在一起&#xff0c;使它們在邏輯上表現為單個網絡。這通過使用網絡橋來實現&#xff0c;網絡橋工作在數據鏈路層&#xff08;第2層&#xff09;&#xff0c;只關心MAC地址&#…

uniapp開發微信小程序底部地區選擇彈框

個人項目地址&#xff1a; SubTopH前端開發個人站 &#xff08;自己開發的前端功能和UI組件&#xff0c;一些有趣的小功能&#xff0c;感興趣的伙伴可以訪問&#xff0c;歡迎提出更好的想法&#xff0c;私信溝通&#xff0c;網站屬于靜態頁面&#xff09; SubTopH前端開發個人站…

React Native 圖片組件基礎知識

在 React Native 中使用圖片其實跟 HTML 中使用圖片一樣簡單&#xff0c;在 React Native 中我們使用Image組件來呈現圖片的內容&#xff0c;其中主要的屬性有&#xff1a;source。這個屬性主要是設置圖片的內容&#xff0c;它可以是網絡圖像地址、靜態資源、臨時本地圖像以及本…

Android側滑欄(一)可縮放可一起移動的側滑欄

在實際的各類App開發中&#xff0c;經常會需要做一個左側的側滑欄&#xff0c;類似于QQ這種。 今天這篇文章總結下自己在開發中遇到的這類可以跟隨移動且可以縮放的側滑欄。 一、實現原理 使用 HorizontalScrollView 實現一個水平方向的可滑動的View&#xff0c;左布局為側滑…

MySQL-MGR報錯MY-011526

問題背景: 單主MGR集群&#xff0c;主節點在服務器意外重啟之后&#xff0c;無法重新加入現有MGR集群&#xff0c;報錯誤[MY-011526] [Repl] Plugin group_replication reported: This member has more executed transactions than those present in the group. Local transact…

2023年度漏洞預警

1 漏洞 漏洞是硬件&#xff0c;軟件&#xff0c;協議的具體實現或系統安全策略上存在的缺陷。從而可以使用攻擊者能夠在破壞系統。 2 漏洞匯總數據 以下數據針對 23 年截至8月期間爆發的高危嚴重漏洞進行了數據統計和分析&#xff0c; 具體的數據如下所示&#xff1a; 漏洞…

Camx--概述

該部分代碼主要位于 vendor/qcom/proprietary/ 目錄下&#xff1a; 其中 camx 代表了通用功能性接口的代碼實現集合&#xff08;CamX&#xff09;&#xff0c;chi-cdk代表了可定制化需求的代碼實現集合&#xff08;CHI&#xff09;&#xff0c;從圖中可以看出Camx部分對上作為H…

v3s平臺學習

printf 應用程序 arm-linux-gnueabihf-gcc test.c 復制a.out 到 sd卡 /media/shen/rootfs/root 運行a.out 不顯示 解決方法 https://blog.csdn.net/whatday/article/details/85137031/?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~def…

Linux 性能分析之iostat命令詳解

Linux 性能分析之iostat命令詳解 iostat命令是IO性能分析的常用工具&#xff0c;其是input/output statistics的縮寫。本文將著重于下面幾個方面介紹iostat命令&#xff1a; iostat的安裝iostat命令行選項說明iostat輸出內容分析如何確定磁盤IO的瓶頸iostat實際案例 命令的安…

django boostrap html實現可拖拽的左右布局,鼠標拖動調整左右布局的大小或占比

一、實現的效果 最近需要在Django項目中,實現一個左右布局的html頁面,頁面框架使用的是boostrap。但這個布局不是簡單的左右分欄布局,而是需要實現可以通過鼠標拖拽的方式動態調整左右兩側布局的大小和占比。效果大致如下: 一開始,頁面分為左右兩塊布局: 鼠標放到中間的…

Python腳本之連接MySQL【四】

本文為博主原創&#xff0c;未經授權&#xff0c;嚴禁轉載及使用。 本文鏈接&#xff1a;https://blog.csdn.net/zyooooxie/article/details/124640412 之前寫了篇 Python腳本之連接MySQL【三】&#xff0c;日常使用過程中&#xff0c;代碼實際有很多改動&#xff0c;特此更新…

阿里云SMS,APi接口返回錯誤碼

API錯誤碼 更新時間&#xff1a;2023-06-29 16:33提交缺陷 產品詳情 相關技術圈 我的收藏 調用API接口失敗時&#xff0c;會返回錯誤碼。本文檔為您提供API接口錯誤碼列表&#xff0c;請根據錯誤碼和對應錯誤信息排查問題。 錯誤碼&#xff08;Code&#xff09; 錯誤信息…

【先進PID控制算法(ADRC,TD,ESO)加入永磁同步電機發電控制仿真模型研究(Matlab代碼實現)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;歡迎來到本博客????&#x1f4a5;&#x1f4a5; &#x1f3c6;博主優勢&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客內容盡量做到思維縝密&#xff0c;邏輯清晰&#xff0c;為了方便讀者。 ??座右銘&a…