日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747


1.什么是 Spring Boot ?

解釋一下:Spring Boot 可以構建一切。Spring Boot 設計之初就是為了最少的配置,最快的速度來啟動和運行 Spring 項目。Spring Boot 使用特定的配置來構建生產就緒型的項目。

Spring Boot 的特性:

  • 使用 Spring 項目引導頁面可以在幾秒構建一個項目

  • 方便對外輸出各種形式的服務,如 REST API、WebSocket、Web、Streaming、Tasks

  • 非常簡潔的安全策略集成

  • 支持關系數據庫和非關系數據庫

  • 支持運行期內嵌容器,如 Tomcat、Jetty

  • 強大的開發包,支持熱啟動

  • 自動管理依賴

  • 自帶應用監控

  • 支持各種 IED,如 IntelliJ IDEA、NetBeans

2.Spring Boot 快速入門

 

構建項目:

(1)訪問 http://start.spring.io/。

(2)選擇構建工具 Maven Project、Spring Boot 版本 1.5.8 及一些工程基本信息,可參考下圖:

寫給新手看的 Spring Boot 入門學習指南

(3)單擊 Generate Project 按鈕并下載項目壓縮包。

(4)解壓后,單擊 Eclipse,Import | Existing Maven Projects | Next | 選擇解壓后的文件夾 | Finsh 命令,OK Done!

(5)如果使用的是 Idea,單擊 File | New | Model from Existing Source.. | 選擇解壓后的文件夾 | OK 命令, 選擇 Maven ,一路 Next,OK Done!

如果讀者使用的是 Idea 工具,也可以這樣:

(1)單擊 File | New | Project… 命令,彈出新建項目框。

(2)選擇 Spring Initializr 選項,單擊 Next 按鈕,也會出現上述類似的配置界面,Idea 幫我們做了集成。

(3)填寫相關內容后,單擊 Next 按鈕,選擇依賴的包再單擊 Next 按鈕,最后確定信息無誤單擊 Finish 按鈕。

對上面的配置做一個解釋:

  • 第一個選擇框選擇創建以 Maven 構建項目,還是以 Gradle 構建項目,這是兩種不同的構建方式,其中 Gradel 配置內容更簡潔一些,并且包含了 Maven 的使用,不過日常使用 Maven 居多。

  • 第二個選擇框選擇編程語言,現在支持 JAVA、Kotlin 和 Groovy。

  • 第三個選擇框選擇 Spring Boot 版本,可以看出 Spring Boot 2.0 已經到了第五個里程碑了。在實際使用中,我們會優先使用穩定版本,1.0 的最新穩定版本是 1.5.8,也是我們演示使用的版本。

下面就是項目的配置信息了。

  • Group:一般填寫公司域名,比如百度公司填 com.baidu,演示使用 com.neo。

  • Artifact:可以理解為項目的名稱,可以根據實際情況來填,本次演示填寫 helloWorld。

  • Dependencies:在這塊添加我們項目所依賴的 Spring Boot 組件,可以多選。本次選擇 Web、devtools 兩個模塊。

3.項目結構介紹

寫給新手看的 Spring Boot 入門學習指南

如上圖所示,Spring Boot 的基礎結構共三個文件:

  • src/main/java:程序開發以及主程序入口

  • src/main/resources:配置文件

  • src/test/java:測試程序

另外,Sping Boot 建議的目錄結果如下:

root package 結構:com.example.myproject

寫給新手看的 Spring Boot 入門學習指南

com.example.myproject 目錄下:

  • Application.java:建議放到根目錄下面,是項目的啟動類,Spring Boot 項目只能有一個 main 方法。

  • comm:目錄建議放置公共的類,如全局的配置文件、工具類等。

  • domain:目錄主要用于實體(Entity)與數據訪問層(Repository)。

  • repository:數據庫訪問層代碼。

  • service:該層主要是業務類代碼。

  • web:該層負責頁面訪問控制。

resources 目錄下:

  • static:目錄存放 Web 訪問的靜態資源,如 JS、css、圖片等。

  • templates:目錄存放頁面模板。

  • application.properties:項目的配置信息。

test 目錄存放單元測試的代碼;pom.xml 用于配置項目依賴包,以及其他配置。

采用默認配置可以省去很多設置,當然也可以根據自己的喜好來進行更改。最后,啟動 Application main 方法,至此一個 Java 項目搭建好了!

4.簡單 Web 開發

(1)可以在 Spring Initializr 上面添加,也可以手動在 pom.xml 中添加:

寫給新手看的 Spring Boot 入門學習指南

pom.xml 文件中默認有兩個模塊:

  • spring-boot-starter:核心模塊,包括自動配置支持、日志和 YAML;

  • spring-boot-starter-test:測試模塊,包括 JUnit、Hamcrest、Mockito。

(2)編寫 controller 內容:


 

@RestControllerpublic class HelloWorldController

{ @RequestMapping("/hello")
public String hello
{
return "Hello World"; }}

@RestController的意思就是 controller 里面的方法都以 json 格式輸出,不用再配置什么 jackjson 的了!

如果配置為@Controller就代表著輸出為頁面內容。

(3)啟動主程序,打開瀏覽器訪問 http://localhost:8080/hello,就可以看到以下內容,是不是很簡單!


 

Hello World

(4)如果我們想傳入參數怎么辦?


 

@RestControllerpublic class HelloWorldController
{ @RequestMapping("/hello")
public String index(String name)
{
return "Hello World, " +name; }}

重新啟動項目,訪問 http://localhost:8080/hello?name=neo,返回內容如下:


 

Hello World,neo

經過上一個測試發現,修改 controller 內相關代碼,就需要重新啟動項目才能生效,這樣做很麻煩是不是,別著急。Spring Boot 提供了另外一個組件來解決。

5.熱部署

熱啟動就需要用到我們在一開始引入的另外一個組件:devtools。它是 Spring Boot 提供的一組開發工具包,其中就包含我們需要的熱部署功能。但是在使用這個功能之前還需要再做一些配置。

(1)在 dependency 中添加 optional 屬性,并設置為 true:

寫給新手看的 Spring Boot 入門學習指南

(2)在 plugin 中配置另外一個屬性 fork,并且配置為 true:

寫給新手看的 Spring Boot 入門學習指南

OK,以上兩步配置完成,如果讀者使用的是 Eclipse,那么恭喜你大功告成了。

如果讀者使用的是 Idea 還需要做以下配置。

(3)配置 Idea

選擇 File-Settings-Compiler 勾選 Build project automatically,低版本 Idea 勾選make project automatically

寫給新手看的 Spring Boot 入門學習指南

使用快捷鍵:CTRL + SHIFT + A輸入Registry找到選項compile.automake.allow.when.app.running勾選

寫給新手看的 Spring Boot 入門學習指南

全部配置完成后,Idea 就支持熱部署了,大家可以試著去改動一下代碼就會發現 Spring Boot 會自動重新加載,再也不需要我們手動點擊重新部署了。

為什么 Idea 需要多配置后面這一步呢,因為 Idea 默認不是自動編譯的,需要我們手動去配置后才會自動編譯,而熱部署依賴于項目的自動編譯功能。

該模塊在完整的打包環境下運行的時候會被禁用。如果使用 java -jar 啟動應用或者用一個特定的 classloader 啟動,它會認為這是一個“生產環境”。

6.單元測試

單元測試在日常開發中是必不可少的,一個牛逼的程序員,單元測試寫得也是杠杠的。下面來看下 Spring Boot 對單元測試又做了哪些支持?

如果我們只想運行一個 hello World,只需要一個注解就可以。在 src/test 目錄下新建一個 HelloTests 類,代碼如下:


 

public class HelloTest
{ @Test public void hello
{ System.out.println("hello world"); }}

單擊右鍵“運行”按鈕,會發現控制臺輸出:hello world。僅僅只需要了一個注解。但是如果我們需要測試 web 層的請求呢?Spring Boot 也給出了支持。

以往我們在測試 web 請求的時候,需要手動輸入相關參數在頁面測試查看效果,或者自己寫 post 請求。在 Spring Boot 中,Spring 給出了一個簡單的解決方案;使用 mockmvc 進行 web 測試,mockmvc 內置了很多工具類和方法,可以模擬 post、get 請求,并且判斷返回的結果是否正確等,也可以利用print打印執行結果。


 

@SpringBootTest
public class HelloTest
{
private MockMvc mockMvc;
@Before
public void setUp t
hrows Exception
{ mockMvc = MockMvcBuilders.standaloneSetup(new HelloWorldController).build; }
@Test public void getHello
throws Exception
{ mockMvc.perform(MockMvcRequestBuilders.post("/hello?name=小明").accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print); }}

在類的上面添加@SpringBootTest,系統會自動加載 Spring Boot 容器。在日常測試中,我們就可以注入 bean 來做一些局部業務的測試。MockMvcRequestBuilders可以 post、get 請求,使用print方法會將請求和相應的過程都打印出來,如下:


 

MockHttpServletRequest: HTTP Method = POST Request URI = /hello Parameters = {name=[neo]} Headers = {}Handler: Type = com.neo.helloWorld.web.HelloWorldController Method = public java.lang.String com.neo.helloWorld.web.HelloWorldController.hello(java.lang.String)...MockHttpServletResponse: Status = 200
Error message =
Headers = {Content-Type=[text/plain;charset=ISO-8859-1], Content-Length=[16]} Content type = text/plain;
charset=ISO-8859-1
Body = Hello World ,neo Forwarded URL =
Redirected URL =
Cookies =

從返回的Body = Hello World ,neo可以看出請求成功。

7.總結

使用 Spring Boot 可以非常方便、快速搭建項目,而不用關心框架之間的兼容性、適用版本等各種問題,我們想使用任何東西,僅僅添加一個配置就可以,所以使用 Sping Boot 非常適合構建微服務。

建議大家使用 Idea 開發 Spring Boot 項目,Eclipse 對 Spring Boot 項目支持并不好,并且使用 Eclipse 偶爾會出現一些詭異的問題,影響初學者的學習。

關于完整的學習 Spring Boot 路徑,我寫了結構更加清晰,知識點更加系統的課程。

分享到:
標簽:Spring Boot
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定