簡介
在您第1次接觸和學習Spring架構的時候,是否因為其繁雜的配置而退卻了?在你第n次使用Spring架構的時候,是否覺得一堆反複黏貼的配置有一些厭煩?那麼您就不妨來試試使用Spring Boot來讓你更易上手,更簡單快捷地建構Spring應用!
Spring Boot讓我們的Spring應用變的更輕量化。比如:你可以僅僅依靠一個Java類來運作一個Spring引用。你也可以打包你的應用為jar并通過使用java -jar來運作你的Spring Web應用。
Spring Boot的主要優點:
- 為所有Spring開發者更快的入門
- 開箱即用,提供各種預設配置來簡化項目配置
- 内嵌式容器簡化Web項目
- 沒有備援代碼生成和XML配置的要求
https://blog.didispace.com/spring-boot-learning-1/#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8 快速入門
本章主要目标完成Spring Boot基礎項目的建構,并且實作一個簡單的Http請求處理,通過這個例子對Spring Boot有一個初步的了解,并體驗其結構簡單、開發快速的特性。
https://blog.didispace.com/spring-boot-learning-1/#%E7%B3%BB%E7%BB%9F%E8%A6%81%E6%B1%82%EF%BC%9A 系統要求:
- Java 7及以上
- Spring Framework 4.1.5及以上
本文采用
Java 1.8.0_73
、
Spring Boot 1.3.2
調試通過。
https://blog.didispace.com/spring-boot-learning-1/#%E4%BD%BF%E7%94%A8Maven%E6%9E%84%E5%BB%BA%E9%A1%B9%E7%9B%AE 使用Maven建構項目
- 通過
工具産生基礎項目SPRING INITIALIZR
Spring Boot快速入門簡介快速入門
-
- 點選
下載下傳項目壓縮包Generate Project
- 點選
- 解壓項目包,并用IDE以
項目導入,以Maven
為例:IntelliJ IDEA 14
-
- 菜單中選擇
–>File
New
Project from Existing Sources...
- 選擇解壓後的項目檔案夾,點選
OK
-
并選擇Import project from external model
,點選Maven
到底為止。Next
- 若你的環境有多個版本的JDK,注意到選擇
的時候請選擇Java SDK
以上的版本Java 7
- 菜單中選擇
項目結構解析
通過上面步驟完成了基礎項目的建立,如上圖所示,Spring Boot的基礎結構共三個檔案(具體路徑根據使用者生成項目時填寫的Group所有差異):
-
下的程式入口:src/main/java
Chapter1Application
-
下的配置檔案:src/main/resources
application.properties
-
下的測試入口:src/test/
Chapter1ApplicationTests
生成的
Chapter1Application
和
Chapter1ApplicationTests
類都可以直接運作來啟動目前建立的項目,由于目前該項目未配合任何資料通路或Web子產品,程式會在加載完Spring之後結束運作。
https://blog.didispace.com/spring-boot-learning-1/#%E5%BC%95%E5%85%A5Web%E6%A8%A1%E5%9D%97 引入Web子產品
目前的
pom.xml
内容如下,僅引入了兩個子產品:
-
:核心子產品,包括自動配置支援、日志和YAMLspring-boot-starter
-
:測試子產品,包括JUnit、Hamcrest、Mockitospring-boot-starter-test
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
引入Web子產品,需添加
spring-boot-starter-web
子產品:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
編寫HelloWorld服務
- 建立
命名為package
(根據實際情況修改)com.didispace.web
-
類,内容如下HelloController
@RestController
public class HelloController {
@RequestMapping("/hello")
public String index() {
return "Hello World";
}
}
- 啟動主程式,打開浏覽器通路
,可以看到頁面輸出http://localhost:8080/hello
Hello World
https://blog.didispace.com/spring-boot-learning-1/#%E7%BC%96%E5%86%99%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B 編寫單元測試用例
打開的
src/test/
下的測試入口
Chapter1ApplicationTests
類。下面編寫一個簡單的單元測試來模拟http請求,具體如下:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class Chapter1ApplicationTests {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World")));
}
}
使用
MockServletContext
來建構一個空的
WebApplicationContext
,這樣我們建立的
HelloController
就可以在
@Before
函數中建立并傳遞到
MockMvcBuilders.standaloneSetup()
函數中。
- 注意引入下面内容,讓
status
content
函數可用equalTo
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
至此已完成目标,通過Maven建構了一個空白Spring Boot項目,再通過引入web子產品實作了一個簡單的請求處理。
https://blog.didispace.com/spring-boot-learning-1/#%E4%BB%A3%E7%A0%81%E7%A4%BA%E4%BE%8B 代碼示例
本文的相關例子可以檢視下面倉庫中的
chapter1
目錄:
- Github: https://github.com/dyc87112/SpringBoot-Learning
- Gitee: https://gitee.com/didispace/SpringBoot-Learning
如果您覺得本文不錯,歡迎
Star
支援,您的關注是我堅持的動力!
推薦: 使用Cloud Studio線上編寫、調試和管理Spring Boot應用