SpringBoot簡單入門
Spring Boot好處: 。塔拳。鼠证。。靠抑。一大堆量九,本人就不羅列了。
1.1 準備工作
- JDK 1.8+
- Maven 3.2+ (3.6.1安裝教程)
- IntelliJ IDEA(2019.2.2安裝教程)
注意:
JDK 安裝颂碧、Maven 安裝荠列、Git 安裝和 IntelliJ IDEA 開發(fā)工具安裝可參照對應(yīng)教程鏈接。
1.2 創(chuàng)建一個Spring Boot工程
其實 Spring Boot 工程本質(zhì)上就是一個 Maven 工程载城,這里說下兩種不同的創(chuàng)建方式:
1.2.1 在線創(chuàng)建
這是官方提供的創(chuàng)建方法,使用http://start.spring.io/來構(gòu)建一個簡單的Spring Boot項目肌似。
- 訪問:http://start.spring.io/
-
選擇構(gòu)建工具 Maven Project、Java诉瓦、Spring Boot 版本 2.1.8 以及一些工程基本信息川队,可參考下圖所示:SpringInitializr
- 點擊Generate Project下載項目壓縮包
- 導(dǎo)入到你的工程,如果是IDEA睬澡,則需要:
a.菜單中選擇File–>New–>Project from Existing Sources...
b.選擇解壓后的項目文件夾固额,點擊OK。
c.點擊Import project from external model并選擇Maven煞聪,點擊Next到底為止斗躏。
d.選擇Java SDK為jdk1.8。
1.2.2 IDEA創(chuàng)建
菜單中選擇File–>New–>Project昔脯,選擇Spring Initializr啄糙,然后如下圖操作:
1.2.3 項目結(jié)構(gòu)
這是默認的工程結(jié)構(gòu):
java 目錄中是編寫代碼的源目錄,test 目錄是編寫單元測試的目錄栅干。
resources 目錄會有 application.properties 應(yīng)用配置文件迈套,還有默認生成的 static 和 templates 目錄,static 用于存放靜態(tài)資源文件碱鳞,templates 用于存放模板文件桑李。可以在 application.properties 中自定義配置資源和模板目錄窿给。
pom.xml:Maven構(gòu)建說明文件贵白。
1.3 解析pom.xml
1.3.1 spring boot 父級依賴
<!-- Spring Boot 啟動父依賴 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
這是Spring Boot父級依賴,parent它繼承自 spring-boot-dependencies崩泡,這個里邊定義了依賴的版本禁荒,也正是因為繼承了這個依賴,所以我們在寫依賴時才不需要寫版本號角撞。
1.3.2 spring-boot-starter-xx 啟動依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
Spring Boot提供了很多”開箱即用“的依賴模塊呛伴,都是以spring-boot-starter-xx作為命名的勃痴,通過提供眾多起步依賴降低項目依賴的復(fù)雜度。
1.3.3 Spring Boot Maven插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
把項目打包成一個可執(zhí)行的jar热康。
1.4 應(yīng)用類
1.4.1啟動應(yīng)用類
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@SpringBootApplication沛申,這是一個組合注解,主要包含了:
- @SpringBootConfiguration(包含@Configuration)姐军,也是一個組合注解
在Spring Boot項目中替代@Configuration - @EnableAutoConfiguration铁材,Spring Boot的強大之處,
該注解會使spring boot根據(jù)項目的jar包進行自動配置奕锌,查看maven依賴
可以看到有一個spring-boot-autoconfigure-xxx.jar著觉,這里有很多spring配置類,
如:我們添加了spring-boot-starter-web惊暴, 項目中自動引入SpringMVC 的相關(guān)jar饼丘,Spring Boot就自動配置tomcat和springMVC相關(guān)bean - @ComponentScan,默認掃描@SpringBootApplication所在類目錄及它的子目錄
@SpringBootApplication的exclude屬性:關(guān)閉配置辽话,
如果我們在項目中引入了solrj的相關(guān)包葬毫,spring boot會自動為我們創(chuàng)建solr
的相關(guān)bean,但有時候我們希望自己配置bean,這時可以這樣:
@SpringBootApplication(exclude={SolrAutoConfiguration.class})
這樣就可以自己寫java spring 配置類或xml屡穗,配置solr的相關(guān)bean了
同樣的,如果你不想引入Spring Boot默認的依賴可以在pom.xml中使用<exclusions>標簽忽肛,看下圖:
1.4.2 Controller類
@RestController
@RequestMapping("/home")
public class EmailController {
.....
}
- @RestController:提供實現(xiàn)了REST API村砂,可以服務(wù)JSON,XML或者其他。
- @RequestMapping:提供路由映射信息屹逛。