什麼是Spring Bootjava
Spring Boot是由Pivotal團隊提供的基於Spring的全新框架,其設計目的是爲了簡化Spring應用的搭建和開發過程。該框架遵循「約定大於配置」原則,採用特定的方式進行配置,從而使開發者無需定義大量的XML配置。經過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域成爲領導者。web
Spring Boot並不重複造輪子,並且在原有Spring的框架基礎上封裝了一層,而且它集成了一些類庫,用於簡化開發。換句話說,Spring Boot就是一個大容器。spring
幾張下面展現圖產品了官網上提供的彈簧引導所集成的全部類庫:apache
Spring Boot官方推薦使用Maven或Gradle來構建項目,本教程採用Maven。api
第一個Spring Boot項目
大多數教程都是以Hello World入門,本教程也不例外,接下來,咱們就來搭建一個最簡單的Spring Boot項目。瀏覽器
首先建立一個Maven工程,請看下圖:app
這裏寫圖片描述框架
而後在pom.xml加入Spring Boot依賴:maven
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
建立一個Controller類HelloController:ide
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @SpringBootApplication public class HelloController { @RequestMapping("hello") String hello() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(HelloController.class, args); } }
運行主方法,Spring Boot默認會啓動自帶的Tomcat容器,啓動成功後,瀏覽器訪問:http:// localhost:8080 / hello,則會看到下圖:
這裏寫圖片描述
咱們能夠注意到,沒有寫任何的配置文件,更沒有顯示的使用任何容器,它是如何啓動程序的呢,具體原理我將在第3課中具體分析。
這裏咱們能夠初步分析出,Spring Boot提供了默認的配置,在啓動類里加入@SpringBootApplication註解,則這個類就是整個應用程序的啓動類。
屬性和yaml
Spring Boot整個應用程序只有一個配置文件,那就是.properties或.yml文件。可是,在前面的示例代碼中,咱們並無看到該配置文件,那是由於Spring Boot對每一個配置項都有默認值。固然,咱們也能夠添加配置文件,用以覆蓋其默認值,這裏以.properties文件爲例,首先在資源下新建一個名爲application.properties(注意:文件名必須是應用)的文件,鍵入內容爲:
server.port=8081 server.servlet.context-path=/api
而且啓動main方法,這時程序請求地址則變成了:http:// localhost:8081 / api / hello。
Spring Boot支持屬性和yaml兩種格式的文件,文件名分別對應application.properties和application.yml,下面貼出yaml文件格式供你們參考:
server: port: 8080 servlet: context-path: /api
能夠看出屬性是以逗號隔開,而yaml則換行+ tab隔開,這裏須要注意的是冒號後面必須空格,不然會報錯.yaml文件格式更清晰,更易讀,這裏做者建議你們都採用yaml文件來配置。
本教程的全部配置均採用yaml文件。
打包,運行
Spring Boot打包分爲war和jar兩個格式,下面將分別演示如何構建這兩種格式的啓動包。
在pom.xml加入以下配置:
<packaging>war</packaging> <build> <finalName>index</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.5</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build>
這個時候運行mvn包就會生成war包,而後放到Tomcat當中就能啓動,可是咱們單純這樣配置在Tomcat是不能成功運行的,會報錯,須要經過編碼指定Tomcat容器啓動,修改HelloController類:
@RestController @SpringBootApplication public class HelloController extends SpringBootServletInitializer{ @RequestMapping("hello") String hello() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(HelloController.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } }
這時再打包放到Tomcat,啓動就不會報錯了。
接下來咱們繼續看若是達成jar包,在pom.xml加入以下配置:
<packaging>jar</packaging> <build> <finalName>api</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> <mainClass>com.lynn.yiyi.Application</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.5</version> <configuration> <encoding>UTF-8</encoding> <useDefaultDelimiters>true</useDefaultDelimiters> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
而後經過mvn package打包,最後經過java命令啓動:
java -jar api.jar
這樣,最簡單的Spring Boot就完成了,可是對於一個大型項目,這是遠遠不夠的,Spring Boot的詳細操做能夠參照官網。
下面展現一個最基礎的企業級Spring Boot項目的結構:
其中,Application.java是程序的啓動類,Startup.java是程序啓動完成前執行的類,WebConfig.java是配置類,全部bean注入,配置,攔截器注入等都放在這個類裏面。
以上實例只是最簡單的Spring Boot項目入門實例,後面會深刻研究Spring Boot。