1. 程式人生 > >Spring Boot學習一Hello World!

Spring Boot學習一Hello World!

今天突然覺得,使用springboot一年多了,但是springboot提供的很多東西都不知道,往往在網上查了好久之後最終的解決方案還是在spring的官網上springboot的文件中找到的,所以打算系統的學習下springboot的官方文件。

看下當前的官方版本:
這裡寫圖片描述

release版最新的是1.5.6,2.0的是M3,文件中是以2.0.0為示例介紹的,所以這裡也使用2.0.0.

開發環境要求:
這裡寫圖片描述

這裡jdk最低要求是1.8了,java9都快出了,如果只是為了學習,直接用最新的肯定不會有問題。spring framework5.0(這個不需要太關心),maven3.2+,gradle4.這裡我習慣了maven所以就選用maven。我本地的是3.5.
容器部分不需要太關心,因為springboot中的starter內建了tomcat,如果需要用其他的可以切換,這裡我選用的是tomcat,所以其他的就不關心了。

官方推薦的開發工具是Spring Boot CLI,我選用的是現在主流的IDEA(也是最近幾個月剛接觸的)。

現在來建立專案:
在IDEA中依次選擇file→new→project
接下來選擇如下:
這裡寫圖片描述
之後的選項:
這裡寫圖片描述
groupid一般都是包名,starter為專案名稱,如果熟悉maven的同學都會很容易理解,參照圖示填寫之後下一步直接finish就好,如果想改專案位置,在下一步自己選擇就好。

現在來看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>springboot-starter</groupId> <artifactId
>
starter1</artifactId> <version>1.0-SNAPSHOT</version> <!-- 這裡是引用的springboot的版本,可以理解為我們下邊的一切springboot提供的東西都是從這裡繼承的 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.BUILD-SNAPSHOT</version> </parent> <!-- 這裡我們引用一個starter,這個starter中包含了tomcat --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!-- 下邊這些事springboot的原有備註,看下就好 --> <!-- (you don't need this if you are using a .RELEASE version) --> <repositories> <repository> <id>spring-snapshots</id> <url>http://repo.spring.io/snapshot</url> <snapshots><enabled>true</enabled></snapshots> </repository> <repository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <url>http://repo.spring.io/snapshot</url> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> </pluginRepository> </pluginRepositories> </project>

現在開始建寫程式碼,我們的java類必須放在src/main/java這個資原始檔夾下,所以我們直接在這裡建Java類。
程式碼:

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

/**
 * Created by pangkunkun on 2017/8/31.
 */
@RestController
@EnableAutoConfiguration
public class Helloworld {
    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

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

目錄結構:
這裡寫圖片描述

直接執行這個類(右鍵run Helloworld),然後在瀏覽器中輸入localhost:8080就可以得到“Hello World!”。

這樣就建立起一個最簡單的springboot專案。

簡單的說下這個Java類中的註解。
@RestController:把這個類註冊成一個controller,從而能夠接受url的呼叫,這個功能是@Controller的功能,前邊的Rest是生命成rest介面,如果不瞭解rest這個概念的話,建議起網上搜一下。如果這裡直接使用@Controller也是可以正常呼叫的,但是這裡返回的時候會報找不到頁面的錯誤。具體不多做解釋了,具體可以看下@RestController,這是個組合註解。

@RequestMapping:使用過springmvc的都回很清楚這個註解,用來定義一個URI。

@EnableAutoConfiguration:這個註解是告訴Spring Boot自己去配置spring,這裡主要是找到spring-boot-starter-web這個引用,並啟用裡面的tomcat容器,從而使專案執行起來。後邊可能會一直用@SpringBootApplication這個更專業點兒的註解,到時候再說。

今天有點兒晚了,先說這些吧,如果有什麼問題,歡迎大家批評指正。