首頁 > 軟體

Spring Boot專案搭建入門教學

2020-06-16 17:23:03

Spring Boot是Spring推出的一個輕量化Web框架,主要解決了Spring對於小型專案飽受詬病的設定和開發速度問題。

Spring Boot 包含的特性如下:

建立可以獨立執行的 Spring 應用。
直接嵌入 Tomcat 或 Jetty 伺服器,不需要部署 WAR 檔案。
提供推薦的基礎 POM 檔案來簡化 Apache Maven 設定。
盡可能的根據專案依賴來自動設定 Spring 框架。
提供可以直接在生產環境中使用的功能,如效能指標、應用資訊和應用健康檢查。
沒有程式碼生成,也沒有 XML 組態檔。

****第一個SpringBoot應用:****

1.構建maven專案
IDEA:

Create New Project -> Maven -> 選擇JDK ->
GroupId : com.example, ArtifactId: springBootDemo -> Project name : springBootDemo

2.編製pom.xml

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>springBootDemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.3.RELEASE</version>
    </parent>

    <!-- Add typical dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!-- Package as an executable jar -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

3.編製Application.Java存於myFirstProjectsrcmainjavacomexample下

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

4.編製Example.java存於myFirstProjectsrcmainjavacomexampleweb下

package com.example.web;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

    @RequestMapping("/hello/{myName}")
    String index(@PathVariable String myName) {
        return "Hello " + myName;
    }
}

5.執行
在Application.java檔案上(或檔案中) 選擇Run 'Application '
如下圖:

6.存取
執行成功後,開啟瀏覽器,輸入http://localhost:8080
頁面展示Hello World!

註解詳解:

Spring boot 中常用的註解如下:

@ResponseBody
用該注解修飾的函數,會將結果直接填充到HTTP的響應體中,一般用於構建RESTful的api;

@Controller
用於定義控制器類,在spring 專案中由控制器負責將使用者發來的URL請求轉發到對應的服務介面(service層)。

@RestController
@ResponseBody和@Controller的合集

@RequestMapping
提供路由資訊,負責URL到Controller中的具體函數的對映。

@EnableAutoConfiguration
Spring Boot自動設定(auto-configuration):嘗試根據你新增的jar依賴自動設定你的Spring應用。例如,如果你的classpath下存在HSQLDB,並且你沒有手動設定任何資料庫連線beans,那麼我們將自動設定一個記憶體型(in-memory)資料庫”。你可以將@EnableAutoConfiguration或者@SpringBootApplication註解新增到一個@Configuration類上來選擇自動設定。如果發現應用了你不想要的特定自動設定類,你可以使用@EnableAutoConfiguration註解的排除屬性來禁用它們.

@ComponentScan
表示將該類自動發現(掃描)並註冊為Bean,可以自動收集所有的Spring元件,包括@Configuration類。我們經常使用@ComponentScan註解搜尋beans,並結合@Autowired註解匯入。

@Configuration
相當於傳統的xml組態檔,如果有些第三方庫需要用到xml檔案,建議仍然通過@Configuration類作為專案的設定主類——可以使用@ImportResource註解載入xml組態檔。

@SpringBootApplication
相當於@EnableAutoConfiguration、@ComponentScan和@Configuration的合集。

@Import
用來匯入其他設定類。

@ImportResource
用來載入xml組態檔。

@Autowired
自動匯入依賴的bean

@Service
一般用於修飾service層的元件

@Repository
使用@Repository註解可以確保DAO或者repositories提供異常轉譯,這個註解修飾的DAO或者repositories類會被ComponetScan發現並設定,同時也不需要為它們提供XML設定項。

Spring Boot入門學習筆記 http://www.linuxidc.com/Linux/2016-10/135889.htm

Spring Boot+Nginx+Tomcat+SSL設定筆記  http://www.linuxidc.com/Linux/2016-01/127134.htm

Spring Boot 實踐心得筆記  http://www.linuxidc.com/Linux/2017-01/139576.htm

Spring Boot的啟動器Starter詳解 http://www.linuxidc.com/Linux/2016-10/136430.htm


IT145.com E-mail:sddin#qq.com