1. 程式人生 > >Spring Boot簡單使用(基於MAC版本IDEA)

Spring Boot簡單使用(基於MAC版本IDEA)

使用Spring Boot可以讓我們快速建立一個基於Spring的專案,而讓這個Spring專案跑起來我們只需要很少的配置就可以了。Spring Boot主要有如下核心功能:

1.獨立執行的Spring專案

Spring Boot可以以jar包的形式來執行,執行一個Spring Boot專案我們只需要通過java -jar xx.jar類執行。非常方便。

2.內嵌Servlet容器 

Spring Boot可以內嵌Tomcat,這樣我們無需以war包的形式部署專案。

3.提供starter簡化Maven配置

使用Spring或者SpringMVC我們需要新增大量的依賴,而這些依賴很多都是固定的,這裡Spring Boot 通過starter能夠幫助我們簡化Maven配置。

4.自動配置Spring 
5.準生產的應用監控 
6.無程式碼生成和xml配置

OK,關於SpringBoot更詳細的優缺點小夥伴們也可以自行搜尋,我這裡不再羅列,我們還是來看看程式碼。

專案建立


初次接觸,我們先來看看如何建立一個Spring Boot專案,這裡以MAC版本IntelliJ IDEA為例,其他的IDE工具小夥伴們自行搜尋建立方式:

首先建立一個專案,建立時選擇Spring Initializr,然後Next,如下圖:


點選Next

繼續點選Next

選擇Web然後點選右側的web,並且可以選擇Spring Boot的版本,我這裡演示就隨便選了,選好後點擊Next

點選Finish,第一次使用會下載依賴包需要等一段時間。

專案建立成功之後接下來我們來看看這個東西要怎麼樣去執行。首先我們看到在專案建立成功之後,在專案的根目錄下會有一個artifactId+Application命名規則的入口類,如下圖:

就是這個DemoApplication類,這是我們整個專案的入口類,這個類有一個@SpringBootApplication註解,這是整個Spring Boot的核心註解,它的目的就是開啟Spring Boot的自動配置。OK,那麼我在這個類上再新增一個@RestController註解,使之變為一個Controller,然後裡邊提供一個地址轉換方法,如下:


然後檔案上點選右鍵出現如下提示,點選紅色方框的按鈕啟動

確認啟動過程中沒有錯誤後就可以進行登入

OK,至此,我們一個簡單的Spring Boot工程已經創建出來了,並且成功的從瀏覽器中訪問到了,但是為什麼它最終會跑起來呢?想必小夥伴們還有許多疑問,我們來分析下。

入口類和@SpringBootApplication註解

上文說過,我們新建一個Project系統都會幫我們建立一個名為artifactId+Application的入口類,這個類中有一個main方法,這個main方法就是一個標準的Java應用程式的入口方法。而這裡的@SpringBootApplication則是一個組合註解,我們可以看看它的原始碼:

我們可以看到它組合了@SpringBootConfiguration、@EnableAutoConfiguration以及@ComponentScan,我們在開發的過程中如果不使用@SpringBootApplication,則可以組合使用這三個註解。這三個註解中,@SpringBootConfiguration實際上就是我們前面幾篇部落格提到的@Configuration註解,表明這個類是一個配置類,@EnableAutoConfiguration則表示讓Spring Boot根據類路徑中的jar包依賴為當前專案進行自動配置,最後一個@ComponentScan的作用我也不贅述了,唯一要注意的是如果我們使用了@SpringBootApplication註解的話,系統會去入口類的同級包以及下級包中去掃描實體類,因此我們建議入口類的位置在groupId+arctifactID組合的包名下。

Spring Boot的配置檔案

Spring Boot使用一個全域性的配置檔案application.properties或者application.yml,配置檔案放在src/main/resources目錄下。properties是我們常見的一種配置檔案,Spring Boot不僅支援properties這種型別的配置檔案,也支援yaml語言的配置檔案,我這裡以properties型別的配置檔案為例來看幾個案例。

1.修改Tomcat預設埠和預設訪問路徑

Tomcat預設埠是8080,我將之改為8081,預設訪問路徑是http://localhost:8080,我將之改為http://localhost:8081/helloboot,我們來看看這兩個需求要怎麼樣通過簡單的配置來實現。 
很簡單,在application.properties檔案中新增如下程式碼:

server.port=8081
  • 1
  • 2

然後再啟動Project,在瀏覽器中就得這樣來訪問了:


常規屬性配置

在前面的部落格( Spring常用配置 )中我們介紹瞭如何在使用Spring容器框架下注入properties檔案裡的值。如果我們使用了Spring Boot,這項工作將會變得更加簡單,我們只需要在application.properties中定義屬性,然後在程式碼中直接使用@Value注入即可。 
如下:

book.author=twoDoG
book.name=twoDOGzhuan
  • 1
  • 2
  • 3

我這裡專門設定了中文,因為中文不做特殊處理會亂碼,處理方式為繼續在application.properties中新增如下程式碼:

server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
spring.messages.encoding=UTF-8
  • 1
  • 2
  • 3
  • 4
  • 5

然後 在IntelliJ IDEA中依次點選File -> Settings -> Editor -> File Encodings 
將Properties Files (*.properties)下的Default encoding for properties files設定為UTF-8,將Transparent native-to-ascii conversion前的勾選上。(參考【Springboot 之 解決IDEA讀取properties配置檔案的中文亂碼問題】【Springboot 之 解決IDEA讀取properties配置檔案的中文亂碼問題】)。 

然後在變數中通過@Value直接注入就行了,如下:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

修改index方法,使之返回這些值:

@RequestMapping(value = "/",produces = "text/plain;charset=UTF-8")
    String index(){
        return "Hello Spring Boot! The BookName is "+bookName+";and Book Author is "+bookAuthor+";and Book PinYin is "+bookPinYin;
    }
  • 1
  • 2
  • 3
  • 4

然後在瀏覽器中訪問,結果如下: