1. 程式人生 > >第一章:用一個HelloWord來闡述SpringBoot的簡單與快速

第一章:用一個HelloWord來闡述SpringBoot的簡單與快速

簡介

對spring框架盛行了多年的java方向開發人員來說,每個人java開發已經把spring框架當做開發中不可或缺的一部分。之前傳統的模式都是以applicationContext.xml配置檔案的形式存在,而對應大多數入門級開發人員來說配置出現一點紕漏就會導致執行失敗或者更大的問題,因此會浪費開發人員很多寶貴的時間,對公司來說也是有所損失。那麼spring開源組織很早之前就意識到這種問題的存在,於是他們便對spring框架的全系列元件進行了內部封裝。對外只是提供maven(jar管理、專案打包工具)或者gradle(新興jar管理、專案打包工具)的形式來進行引入parent.pom(maven配置檔案)或者parent.gradle(gradle配置檔案),讓每一個spring專案都是以spring的子專案的形式來執行,這樣開發人員不用再去注重配置檔案的繁瑣而是把精力放到業務邏輯以及更深層次的架構方面。自此SpringBoot就誕生了,它有著純正的開源血統,在此非常感謝spring開源組織給我們java開發人員帶來的便利!

SpringBoot主要優點:

  1. 為所有Spring開發者更快的入門
  2. 開箱即用,提供各種預設配置來簡化專案配置
  3. 內嵌式容器簡化Web專案
  4. 沒有冗餘程式碼生成和XML配置的要求
  5. 提供一系列大型企業級專案的功能性特性(比如:安全、健康檢測、外部化配置、資料庫訪問、restful搭建等很多特性這裡就不一一敘說了,後期文章會陸續更新)

分享目的:

  1. 為所有Spring開發者更快的入門,同時也為自己學習springboot做一個記錄
  2. 開箱即用,提供各種預設配置來簡化專案配置
  3. 內嵌式容器簡化Web專案
  4. 沒有冗餘程式碼生成和XML配置的要求
  5. 提供一系列大型企業級專案的功能性特性(比如:安全、健康檢測、外部化配置、資料庫訪問、restful搭建等很多特性這裡就不一一敘說了,後期文章會陸續更新)

使用IDEA建立一個SpringBoot專案:

開啟IDEA 我們可以看到IntelliJ IDEA的首頁,我們要從下面第一個Create New Project建立一個全新的Springboot專案,跟著“安楠大叔”一起走 關注:安楠大叔

我們在這裡建立一個Spring Initilizr專案,然後點選下面的Next,跟著“安楠大叔”一起走 關注:安楠大叔

我們可以看到有Group、Artifact資訊需要填寫,填好專案資訊以後,點選Next,跟著“安楠大叔”一起走 關注:安楠大叔

這裡是我們需要專案需要的一些Maven包,我們可以在這裡選擇我們需要的,我們第一章節加入Web即可,其他的現在還用不到,然後點選Next,跟著“安楠大叔”一起走 關注:安楠大叔

這裡注意一點的是,如果上面我們選擇了war形式,也添加了Web依賴並且在開發過程中使用Application形式啟動,則需要註釋pom.xml配置檔案內tomcat依賴的scope屬性。

建立好的專案結構:

關注:安楠大叔

我們可以看到目錄結構有如下幾個:

  1. /src/main/java/ 存放專案所有Java原始碼目錄
  2. /src//main/resources/ 存放專案配置檔案目錄以及所有資原始檔(比如我們的html、css、js等等)
  3. /src/test/ 存放測試程式碼目錄
  4. DaoshuApplication 該類是程式的入口類內有個main方法,可以直接通過run方法執行專案
  5. application.properties 該配置檔案是專案的核心配置檔案,以xx.xx.xx的形式存在 後續我們會用application.yml檔案代替application.properties
  6. pom.xml maven 配置檔案,因為我們採用的maven管理,所以這裡會自動生成一個pom檔案

DaoshuApplication啟動類的註解作用解析:

  1. @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration註解。其中@ComponentScan讓spring Boot掃描到Configuration類並把它加入到程式上下文。

  2. @Configuration 等同於spring的XML配置檔案;使用Java程式碼可以檢查型別安全。

  3. @EnableAutoConfiguration 自動配置。

  4. @ComponentScan 元件掃描,可自動發現和裝配一些Bean。

  5. @Component可配合CommandLineRunner使用,在程式啟動後執行一些基礎任務。

  6. @RestController註解是@Controller和@ResponseBody的合集,表示這是個控制器bean,並且是將函式的返回值直 接填入HTTP響應體中,是REST風格的控制器。

  7. @Autowired自動匯入。

  8. @PathVariable獲取引數。

  9. @JsonBackReference解決巢狀外鏈問題。

  10. @RepositoryRestResourcepublic配合spring-boot-starter-data-rest使用。

右鍵在DaoshuApplication點選執行專案:

關注:安楠大叔

可以看到我們的專案是通過內建的tomcat容器啟動的,並且埠號預設是8080。 我們現在通過瀏覽器直接訪問是得不到任何迴應的,只是會有一個錯誤頁面關注:安楠大叔

我們來寫一個訪問專案的Controller:

package com.annandashu.controllers;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 * @ClassName HelloWorldController
 * @Description TODO
 * @Author 安楠大叔
 * @Date 2018/9/18 16:19
 * @Notes
 */

@RestController
@RequestMapping
public class HelloWorldController {

	/**
	 * 測試在頁面輸出Hello Word
	 * @return
	 */
	@RequestMapping(value = "/",method = RequestMethod.GET)
	public String index(){
		return "Hello Word";
	}

}

關注:安楠大叔

可以看到我配置了一個@RequestMapping註解來宣告index()方法可以通過/訪問到,直接訪問我們的ip加埠號即可:127.0.0.1:8080,那麼我們接下來重新啟動專案(專案中如果重啟出錯應該是註解配置問題) 關注:安楠大叔

第一章原始碼下載地址: