springboot菜鳥教程學習與實踐

2024-10-03Cloud computing and code4516

一、Spring Boot簡介

Spring Boot是一個基於Spring框架的快速開發框架,它簡化了Spring應用的初始搭建以及開發過程。其主要目的是讓開發者能夠快速創建獨立的、基於生產級別的Spring應用程序。

springboot菜鳥教程學習與實踐

1. 優點

   - 快速搭建:不需要大量的配置文件。傳統的Spring項目可能需要復雜的XML配置或者多個Java配置類來配置數據源、事務管理等,而Spring Boot通過默認配置和自動配置功能,能讓開發者在短時間內啟動一個項目。

   - 嵌入式容器:可以直接將Tomcat、Jetty等Web容器嵌入到應用程序中,這樣在開發和部署時就不需要單獨安裝和配置Web服務器。

   - 簡化依賴管理:Spring Boot通過starter - pom機制,將相關的依賴打包在一起。例如,當你想要開發一個Web應用時,只需要添加`spring - boot - starter - web`依賴,它就會自動引入Spring MVC、Jackson(用於JSON處理)等相關的依賴。

2. 環境搭建

   - 安裝JDK:確保你的系統中安裝了JDK,建議使用JDK 11或更高版本。可以從Oracle官網或者OpenJDK官網下載適合你操作系統的JDK版本,安裝完成後設置好環境變量`JAVA_HOME`和`PATH`。

   - 選擇IDE:可以使用IntelliJ IDEA或者Eclipse等主流的Java開發IDE。這裏以IntelliJ IDEA為例,下載並安裝社區版或者旗艦版。

   - 創建項目:在IntelliJ IDEA中,選擇新建項目,然後選擇Spring Initializr。填寫項目的基本信息,如組名(groupId)、項目名(artifactId)等。在依賴選項中,可以根據需求選擇添加`spring - boot - starter - web`等依賴。點擊完成後,IDEA會自動下載相關的依賴並構建項目結構。

二、創建第一個Spring Boot應用

1. 編寫簡單的RESTful API

   - 控制器類:創建一個`HelloController`類,在`com.qunapu.demo`包下(假設項目的groupId為`com.qunapu`,artifactId為`demo`)。

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, Spring Boot!";
    }
}

   - 這個控制器類使用了`@RestController`註解,它是`@Controller`和`@ResponseBody`註解的組合,表示這個類中的方法返回的數據直接作為響應體。`@GetMapping`註解指定了這個方法處理`/hello`路徑的GET請求。

這段代碼是Java語言編寫的,用於創建一個簡單的Spring Boot Web應用程序中的一個控制器(Controller)。Spring Boot是Spring框架的一個子項目,它提供了默認配置、創建獨立、生產級別的基於Spring的應用程序所需的幾乎全部功能。下面是這段代碼的詳細解釋:

1). 導入必要的包:

   - `import org.springframework.web.bind.annotation.GetMapping;`:這行代碼導入了`@GetMapping`註解,它用於將HTTP GET請求映射到特定的處理方法上。

   - `import org.springframework.web.bind.annotation.RestController;`:這行代碼導入了`@RestController`註解,它是一個方便的註解,它本身是一個特殊的`@Controller`,它包含了`@ResponseBody`註解的功能,意味著所有從這個控制器返回的對象都會自動轉換為JSON或XML格式的響應體。

2). 定義控制器類:

   - `public class HelloController { ... }`:這裏定義了一個名為`HelloController`的公開類。這個類是一個Spring MVC控制器,用於處理Web請求。

3). 應用`@RestController`註解:

   - `@RestController`:這個註解被應用於`HelloController`類上,表明這個類是一個控制器,並且所有從這個控制器返回的對象都將被自動轉換為JSON或XML格式(取決於請求的`Accept`頭部)的HTTP響應體。這是構建RESTful Web服務時常用的模式。

4). 定義處理方法:

   - `@GetMapping("/hello")`:這個註解被應用於`sayHello`方法上,它表示當HTTP GET請求發送到`/hello`路徑時,這個方法將被調用。`@GetMapping`是一個組合註解,它是`@RequestMapping(method = RequestMethod.GET)`的簡寫形式。

   - `public String sayHello() { return "Hello, Spring Boot!"; }`:這是一個公開的方法,沒有參數,返回一個字符串。當`/hello`路徑接收到GET請求時,這個方法會被執行,並且返回的字符串("Hello, Spring Boot!")會自動被Spring MVC框架轉換為HTTP響應體發送給客戶端。

綜上所述,這段代碼定義了一個簡單的Spring Boot Web控制器,它監聽`/hello`路徑的GET請求,並返回一個簡單的字符串("Hello, Spring Boot!")作為響應。這是Spring Boot Web應用程序中非常典型的用法,用於快速構建RESTful API或Web服務的端點。

2. 運行項目

   - 在IntelliJ IDEA中,可以直接點擊運行按鈕來啟動項目。Spring Boot會自動啟動嵌入式的Web容器(如Tomcat),默認監聽在`8080`端口。打開瀏覽器,輸入`http://localhost:8080/hello`,就可以看到`Hello, Spring Boot!`的響應。

三、Spring Boot配置

1. 配置文件

   - Spring Boot支持兩種格式的配置文件:`application.properties`和`application.yml`(或`application.yaml`)。

   - 在`application.properties`中設置端口號的示例:`server.port = 8081`。

   - 在`application.yml`中的相同配置示例:

yaml
server:
  port: 8081

   - `application.yml`文件使用縮進表示層級關系,更加簡潔直觀。

2. 自定義配置

   - 假設我們想要定義一個自定義的配置項,比如一個歡迎消息。

   - 首先在`application.yml`中添加配置:

yaml
myapp:
  welcome - message: "Welcome to my Spring Boot application"

   - 然後創建一個配置類來讀取這個配置項:

java
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "myapp")
public class MyAppConfig {
    private String welcomeMessage;
    public String getWelcomeMessage() {
        return welcomeMessage;
    }
    public void setWelcomeMessage(String welcomeMessage) {
        this.welcomeMessage = welcomeMessage;
    }
}
```
   - 可以在控制器中註入這個配置類並使用配置項:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
    @Autowired
    private MyAppConfig myAppConfig;
    @GetMapping("/welcome")
    public String getWelcomeMessage() {
        return myAppConfig.getWelcomeMessage();
    }
}

四、數據訪問層

1. 使用Spring Data JPA

   - 首先添加`spring - boot - starter - data - jpa`依賴到項目中。

   - 假設我們有一個簡單的實體類`User`:

java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
    // 省略構造函數、getter和setter方法
}

   - 然後創建一個`UserRepository`接口繼承自`JpaRepository`:

java
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}

   - 在控制器中可以註入`UserRepository`並進行數據操作,比如保存用戶數據:

java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
    @Autowired
    private UserRepository userRepository;
    @PostMapping("/users")
    public User saveUser(@RequestBody User user) {
        return userRepository.save(user);
    }
}

五、總結

Spring Boot為Java開發者提供了一種快速開發Spring應用的方式。通過簡化配置、自動配置、嵌入式容器等特性,能夠大大提高開發效率。無論是構建小型的Web應用還是大型的企業級應用,Spring Boot都能發揮重要的作用。從創建簡單的RESTful API到進行數據訪問,Spring Boot提供了一整套完善的解決方案。隨著對Spring Boot的深入學習和實踐,開發者可以更好地利用其優勢來構建高質量的應用程序。

分享給朋友:

“springboot菜鳥教程學習與實踐” 的相關文章

html a標簽target屬性

html a標簽target屬性

HTML語言中的標簽用於定義超鏈接。其中,標簽有一個屬性叫做target,它用於指定鏈接在何處打開。目前,標簽的target屬性有以下四個取值:- _self:鏈接會在當前窗口中打開(默認值),這意味著打開新的文檔或資源時,頁面會在當前瀏覽器窗口中重新加載,並將新文檔或資源顯示在當前窗口中。基於以上講解,編寫標簽鏈接的代碼並使用target屬性指定打開方式的實例:< a href="htpps://sn.qunapu.com" target="_blank">打開示例網站。這段代碼表示鏈接將在新的瀏覽器窗口或標簽頁中打開,能夠實現用戶在訪問完畢後仍能保留原有瀏覽器窗口內容的體驗。…

一個簡單的html放煙花特效的代碼

一個簡單的html放煙花特效的代碼

以下是一個簡單的html放煙花特效的代碼,代碼說明:1. 使用html和css定義了一個煙花的基本樣式;2. 使用javascript動態生成多個煙花元素,並使用animation讓其展開,模擬煙花爆炸效果;3. 使用setTimeout函數控制煙花爆炸持續時間,並使用setInterval控制煙花爆炸的觸發時間間隔。…

星空特效的HTML代碼示例

星空特效的HTML代碼示例

以下是一個星空特效的HTML代碼示例:這個代碼會在頁面背景中生成100個閃爍的星星,使得整個頁面看起來像是夜空中的星空。可以在瀏覽器中運行查看效果。這些代碼可以在瀏覽器中運行並產生相應的星空特效。…

html零基礎入門教程及代碼演示例子

html零基礎入門教程及代碼演示例子

HTML是創建網頁的基礎語言。在互聯網的世界裏,網頁是我們獲取信息和與世界連接的主要途徑之一。因此,學習HTML是設計和制作網頁的重要一步。如果您是一個完全零基礎的人,那麼這份教程可以幫助您快速入門,並開始創建自己的網頁。在這個教程中,我們將探討HTML的基礎語法和標記,以及如何將它們組合在一起來構建一個簡單的網頁。無需任何預備知識,您只需要在計算機上安裝一個文本編輯器和瀏覽器,就可以開始學習HTML。讓我們開始!…

html5自學教程步驟及代碼例子

html5自學教程步驟及代碼例子

HTML5是最新的HTML標準,具有更多的功能和特性,讓網頁的制作更加靈活和多樣化。以下是HTML5自學教程的一些步驟:1. 學習HTML基礎知識。在深入學習HTML5之前,你需要先學習HTML的基礎知識,包括HTML文件結構、標簽、屬性和元素等。2. 熟悉HTML5的新特性。HTML5相比於之前的版本有許多新特性,如視頻和音頻標簽、畫布、地理位置、本地存儲等等。3. 編寫示例代碼。理論不如實踐,通過編寫一些簡單的網頁示例代碼,你可以更好地熟悉HTML5的知識點和語法規則。…

html5菜鳥教程學習基本步驟

html5菜鳥教程學習基本步驟

以下是HTML5的菜鳥教程:1. 概述和基礎知識 了解HTML5的概念和新特性;熟悉HTML文件結構、標簽、元素和屬性;掌握HTML5的語義化標簽。2. 視頻和音頻 學習如何在網頁中嵌入視頻和音頻,使用video和audio標簽;熟悉媒體控制、字幕等相關屬性。3. 畫布和圖像 掌握使用canvas繪制2D圖形;熟悉圖像處理技術,如像素控制、濾鏡等。4. 表單和輸入 學習HTML5表單元素的新特性,如日期、時間、搜索等;熟悉表單數據驗證、自動填充等功能。…