一、使用 Intellij IDEA 創建 SpringBoot 項目
1、點擊 Create New Project
2、選擇 Spring Initialzr
- Spring Initializr(初始)
- 選擇 jdk 版本
- Next
3、填寫 group ,選擇 packaging— War, 選擇 Next
- Group 組織唯一標識(組織域名倒序)
- Artifact 項目的唯一標識
- 輸出格式 jar/war
- jdk 版本
- 開發語言 java Version 目前項目版本
- Next
4、選擇 Web, 點擊 Next,下一步點擊 finish 就好了
- 選擇依賴 Web
- 選擇 Web(RESTful/SpringMVC)
- 選擇依賴的 Spring Boot 版本
- Next
5、命名項目
- 項目名稱
- 項目工作目錄(注:以項目名結尾)
- Finish
6、Spring Boot 項目目錄結構
Spring Boot 的基礎結構共三個文件:
src/main/java
程序開發以及主程序入口
src/main/resources
配置文件
src/test/java
測試程序
另外, Spring Boot 建議的目錄結果如下:
root package 結構:com.example.myproject
com
+- example
+- myproject
+- Application.java
|
+- model
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- controller
| +- CustomerController.java
|
- Application.java 建議放到根目錄下面,主要用於做一些框架配置
- model 目錄主要用於實體與數據訪問層(Repository)
- service 層主要是業務類代碼
- controller 負責頁面訪問控制
採用默認配置可以省去很多配置,當然也可以根據自己的喜歡來進行更改
最後,啓動 Application main 方法,至此一個 Java 項目搭建好了!
二、引入 web 模塊
1、pom.xml 中 <dependencies> 下添加支持 web 的模塊:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
pom.xml 文件中默認有兩個模塊:
- spring-boot-starter :核心模塊,包括自動配置支持、日誌和 YAML,如果引入了 spring-boot-starter-web web 模塊可以去掉此配置,因爲 spring-boot-starter-web 自動依賴了 spring-boot-starter。
- spring-boot-starter-test :測試模塊,包括 JUnit、Hamcrest、Mockito。
2、在 controller 目錄下新建 HelloWorldController.java,填入以下內容:
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
public class HelloWorldController {
@RequestMapping("/hello")
public String index() {
return "Hello World";
}
}
@RestController
的意思就是 Controller 裏面的方法都以 json 格式輸出,不用再寫什麼 jackjson 配置的了!
3、啓動主程序,打開瀏覽器訪問 http://localhost:8080/hello,就可以看到效果了,有木有很簡單!
三、如何做單元測試
打開的src/test/
下的測試入口,編寫簡單的 http 請求來測試;使用 mockmvc 進行,利用 MockMvcResultHandlers.print() 打印出執行結果。
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloTests {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).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")));
}
}
開發環境的調試
熱啓動在正常開發項目中已經很常見了吧,雖然平時開發web項目過程中,改動項目啓重啓總是報錯;但springBoot對調試支持很好,修改之後可以實時生效,需要添加以下的配置:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
該模塊在完整的打包環境下運行的時候會被禁用。如果你使用 java -jar 啓動應用或者用一個特定的 classloader 啓動,它會認爲這是一個“生產環境”。
四、總結
使用 Spring Boot 可以非常方便、快速搭建項目,使我們不用關心框架之間的兼容性,適用版本等各種問題,我們想使用任何東西,僅僅添加一個配置就可以,所以使用 Spring Boot 非常適合構建微服務。
參考:
http://www.ityouknow.com/springboot/2016/01/06/spring-boot-quick-start.html
https://blog.csdn.net/typa01_kk/article/details/76696618
https://juejin.im/post/5c4317e2f265da614933e9f4