【JavaEE】Spring Boot 入門:快速構建你的第一個 Spring Boot 應用

目錄

      • 第一個SpringBoot程序
        • 介紹
        • 項目創建
        • 創建項目
        • 目錄介紹
        • 輸出Hello World


第一個SpringBoot程序

介紹

在學習SpringBoot之前, 我們先來認識?下Spring

我們看下Spring官?(https://spring.io/)的介紹

可以看到, Spring讓Java程序更加快速, 簡單和安全. Spring對于速度、簡單性和?產?的關注使其成為世界上最流?的Java框架。

Spring官?提供了很多開源的項?, 覆蓋范圍從Web開發到?數據, Spring發展到了今天, 已經形成了??的?態圈. 我們在開發時, 也傾向于使?Spring官?提供的技術, 來解決對應的問題.

這些項?都是基于Spring Framework來進?開發的, 但是Spring Framework存在配置多, ??難的問題, Spring 也意識到了這個問題, 為了簡化開發者的使?, 從?創造性的推出了SpringBoot

Spring就是一個框架,為了簡化Java開發

Spring Boot 的誕?是為了簡化 Spring 程序開發的。

SpringBoot 翻譯?下就是 Spring 腳?架,它是為了快速開發 Spring 框架?誕?的,效率會有?個質的提升

項目創建

使? Idea 創建

因為我們?的 Idea 社區版(其他版本也同樣適?),所以先要安裝 Spring Boot Helper插件才能創建Spring Boot 項?.

安裝Spring Boot Help插件

使?專業版的就不需要安裝插件, Idea已經集成了

  1. 查找插件并下載

在這里插入圖片描述

點擊 Plugin homepage , 進???下載插件

此處不要直接點擊 Install

直接點擊Install, 安裝的是收費版

插件地址: https://plugins.jetbrains.com/plugin/18622-spring-boot-helper/versions

在這里插入圖片描述

下載后以后是個壓縮包,不要直接解壓,把它放在一個文件夾里即可,我是放在我的idea旁邊

在這里插入圖片描述
在這里插入圖片描述

然后選中那個壓縮包即可,然后重啟idea再創建項目

然后就多了這個選項

并且安裝好之后,插件的名字就變成了 Spring Initializr and Assistant

注意:這里如果有個Update不要點,點了就變收費版了

創建項目

這里選擇2.X的版本并且不帶snapshot的,帶這個的表示不穩定版本

如果選擇3.X的版本就要用JDK17的,而這種情況你還選了8就用不了了

注意這個2.X3.X是指SpringBoot的版本,2.X的SpringBoot是Spring5

這里雖然是創建SpringBoot項目,但其實這創建的也是Spring MVC項目

現在IDEA官方已經拋棄Java8了,下面先按照創建Java17和3.X版本的方式,然后把Java8的pom.xml文件復制過去就可以繼續使用Java8了

看下面的步驟,別的就是能用Java8的,不過應該都不行了,就看下面8步

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.17</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><image><builder>paketobuildpacks/builder-jammy-base:latest</builder></image></configuration></plugin></plugins></build></project>

創建項目后先看pom.xml文件,先把這里的版本改正,因為社區版這里會自動幫你加個.RELEASE,我們要去掉

在這里插入圖片描述

注意我們的電腦是要自己手動加載Maven的,剛創建項目時右下角會有個load的,點擊即可,就是有點慢

運行程序

在這里插入圖片描述

目錄介紹

在這里插入圖片描述

Spring Boot 項?有兩個主要的?錄:(maintest

  • src/main/java: Java 源代碼

  • src/main/resources: 為靜態資源或配置?件(SpringBoot的配置文件):

    • /static:靜態資源?件夾, ?如前期學的js, css, html等靜態?件, 不需要服務器數據進?綁定的??
    • /templates:模版資源?件夾, 主要存放動態模板?件, ?如JSP, Freemarker, Thymeleaf等需要服務器動態渲染數據的?件
  • src/test/java: 測試代碼源代碼(注意:是開發人員的測試代碼,與測試人員無關)

  • target: 編譯后的?件路徑

  • pom.xml: maven 配置?件

輸出Hello World

我們的JavaEE, 更多是圍繞著如何使?Java來進?web開發.

咱們前?講的是Java基礎, 是沒辦法直接和瀏覽器進?互動的. 所以接下來我們要? SpringBoot 來實現和瀏覽器及??的交互。

package com.example.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author Hsu琛君珩* @ClassName:HelloWorld* @date 2023-11-22* @apiNote* @Version: v1.0*/@RestController
public class HelloWorld {@RequestMapping("/sayhi")public String sayHi(){return "hi,world";}@RequestMapping("/sayhello")public String sayHello(){return "hello,world";}
}

重新啟動項?,訪問 http://127.0.0.1:8080/sayhi 最終效果如下:
在這里插入圖片描述

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

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

相關文章

【論文閱讀筆記】MapReduce: Simplified Data Processing on Large Clusters

文章目錄 1 概念2 編程模型3 實現3.1 MapReduce執行流程3.2 master數據結構3.3 容錯機制3.3.1 worker故障3.3.2 master故障3.3.3 出現故障時的語義 3.4 存儲位置3.5 任務粒度3.6 備用任務 4 擴展技巧4.1 分區函數4.2 順序保證4.3 Combiner函數4.4 輸入和輸出的類型4.5 副作用4.…

用balenaEtcher燒錄ubuntu的iso文件都失敗,所以選用了另一種燒錄的軟件Rufus,然后燒錄成功了+安裝ubuntu的坑

https://releases.ubuntu.com/bionic/進入網頁下載ubuntu 選擇燒錄軟件將下載的Ubuntu燒錄到U盤中 之前用這個U盤燒錄過一次&#xff0c;成功了&#xff0c;后來應該是U盤受損或者是什么其他原因使得用這個U盤總是燒錄失敗 換思路&#xff1a;由于一直使用balenaEtcher燒錄ubu…

3 ESP32的PWM控制

Esp32的PWM控制也配置庫函數&#xff0c;以下就是PWM所用到的函數 1 PWM通道初始化設置 函數原型uint32_t ledcSetup(uint8_t chan, uint32_t freq, uint8_t bit_num)函數功能設定指定LEDC通道的PWM信號頻率和占空比分辨率返回值通道PWM信號的頻率參數說明chan&#xff08;LE…

WebView基礎知識以及Androidx-WebKit的使用

文章目錄 摘要WebView基礎一、啟動調整模式二、WebChromeClient三、WebViewClient四、WebSettings五、WebView和Native交互 Androidx-WebKit一、啟動安全瀏覽服務二、設置代理三、安全的 WebView 和 Native 通信支持四、文件傳遞五、深色主題的支持六、JavaScript and WebAssem…

ipa 功能包調試,分區算法,覆蓋算法測試

參考 wiki 流網絡 flow network 解釋 相關文章 ipa 分區算法 ipa 分區算法總結&#xff0c;部分算法圖解 環境 ubuntu20&#xff0c;ros 版本 noetic 運行測試 按照 readme 提示進行測試&#xff0c;跳過第一個步驟&#xff0c;并不需要 turtlebot3。 執行第三個 launch 報…

vue element checkbox的實現

實現多選非常簡單: 手動添加一個el-table-column&#xff0c;設type屬性為selection即可&#xff1b;默認情況下若內容過多會折行顯示&#xff0c;若需要單行顯示可以使用show-overflow-tooltip屬性&#xff0c;它接受一個Boolean&#xff0c;為true時多余的內容會在 hover 時以…

Java8 快速實現List轉map 、分組、過濾等操作

Java 8 是 Java 編程語言的一個重要版本&#xff0c;它引入了許多新特性和改進&#xff0c;使得 Java 開發變得更加高效和現代。 下面我們就來使用Java8 快速實現List轉map 、分組、過濾等操作。 定義1個用戶對象 public class User {private Integer id;private String nam…

計算機通信

一.進程和線程的區別? 1. 進程是資源分配的最小單位, 線程是cpu進行調度的最小單位。 2. 一個進程可以看做一個運行的程序, 一個進程中可以包含多個線程, 線程在進程內執行。 3. 多進程是指操作系統能同時運行多個任務&#xff08;程序&#xff09;&#xff0c;多線程是指在同…

數據挖掘原理與應用------分類預測

在數據挖掘和機器學習領域&#xff0c;TPR&#xff08;True Positive Rate&#xff09;是指在實際為陽性的情況下&#xff0c;模型正確預測為陽性的比例。TPR也被稱為靈敏度&#xff08;Sensitivity&#xff09;或召回率&#xff08;Recall&#xff09;。它是評估分類模型性能的…

【Linux】探索 Linux du 命令:管理磁盤空間的利器

給我一個擁抱 給我肩膀靠靠 你真的不需要 對我那么好 思念就像毒藥 讓人受不了的煎熬 我會迷戀上癮賴在你懷抱 &#x1f3b5; 陶鈺玉《深夜地下鐵》 在 Linux 系統管理中&#xff0c;磁盤空間管理是一項基礎而重要的任務。du&#xff08;disk usage&#…

如何解決IntelliJ IDEA中pom.xml依賴項引發的安全漏洞黃線警告問題

背景 在開發過程中&#xff0c;當我們在pom.xml文件中添加依賴項時&#xff0c;經常會發現IntelliJ IDEA報出黃色警告線條&#xff0c;提示存在潛在的安全漏洞。警告的具體展現形式如下&#xff1a; 解決方案 首先&#xff0c;打開設置菜單界面&#xff0c;接著選擇編輯器選…

vue3土味情話pinia可以持久保存再次修改App樣式

我是不是你最疼愛的人-失去愛的城市 <template><div class"talk"><button click"getLoveTalk">土味情話</button><ul><li v-for"talk in talkStore.talkList" :key"talk.id">{{ talk.title }}<…

用 Supabase CLI 進行本地開發環境搭建

文章目錄 &#xff08;零&#xff09;前言&#xff08;一&#xff09;Supabase CLI&#xff08;1.1&#xff09;安裝 Scoop&#xff08;1.2&#xff09;用 Scoop 安裝 Supabase CLI &#xff08;二&#xff09;本地項目環境&#xff08;2.1&#xff09;初始化項目&#xff08;2…

基于gin框架的文件上傳(逐行解析)

基于gin框架的文件上傳(逐行解析)記錄一下使用gin框架完成一個文件上傳的功能&#xff0c;一下是實現該功能的代碼&#xff0c;適合小白&#xff0c;代碼都有逐行解釋&#xff01; app.go: package routerimport ("chat/service""github.com/gin-gonic/gin&qu…

網絡工程師練習題

網絡工程師練習題 網橋怎樣知道網絡端口連接了那些網站?如果從端口收到一個數據幀,則將其源地址記入該端口的數據庫當網橋連接的局域網出現環路時怎么辦?運行生成樹協議阻塞一部分端口。使用IEEE 802.1q協議,最多可以配置4094個VLAN。VLAN中繼協議(VTP)有不同的工作模式,…

C++異常詳解

文章目錄 前言一、回顧C語言二、異常的概念三、異常的使用1.異常的拋出和捕獲2.異常的重新捕獲 三.異常安全與異常規范1.異常安全2.異常規范 四.自定義異常體系五.C標準庫的異常體系六.異常優缺點練習題總結 前言 在本篇文章中&#xff0c;我們將會詳細介紹一下有關C異常的講解…

微服務架構:注冊中心 Eureka、ZooKeeper、Consul、Nacos的選型對比詳解

微服務架構&#xff08;Microservices Architecture&#xff09;是一種基于服務拆分的分布式架構模式&#xff0c;旨在將復雜的單體應用程序拆分為一組更小、更獨立的服務單元。這些服務單元可以獨立開發、測試、部署&#xff0c;并使用不同的技術棧和編程語言。它們通過輕量級…

[華為OD] C卷 dfs 特殊加密算法 100

題目&#xff1a; 有一種特殊的加密算法&#xff0c;明文為一段數字串&#xff0c;經過密碼本查找轉換&#xff0c;生成另一段密文數字串。 規則如下 1?明文為一段數字串由0-9組成 2.密碼本為數字0-9組成的二維數組 3?需要按明文串的數字順序在密碼本里找到同樣的數字串…

PUBG非升級實用槍皮-部分盤點

藏匿處的黑貨箱武器需要耗費高額成本才能升級 對于像我這樣的日常休閑玩家來說是一筆不小的&#xff08;巨大的&#xff01;&#xff09;負擔 其實有許多普通非升級槍皮也是不錯的選擇 今天就來盤點一下我自己日常在用的普通皮 來看看你是不是也在用一樣的 &#xff08;僅是盤點…

【OceanBase診斷調優】—— 租戶資源統計項及其查詢方法

本文主要介紹 OceanBase 數據庫中租戶資源統計項及其查詢方法。 適用版本 OceanBase 數據庫 V4.1.x、V4.2.x 版本。 CPU 資源統計項 邏輯 CPU 使用率&#xff08;線程處理請求的時間占比&#xff09;。 通過虛擬表 __all_virtual_sysstat 在 SYS 系統租戶下&#xff0c;查看…