SpringBoot是Spring項目中的一個子工程,與咱們所熟知的Spring-framework 同屬於spring的產品:java
咱們能夠看到下面的一段介紹:程序員
Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible.web
翻譯一下:spring
用一些固定的方式來構建生產級別的spring應用。Spring Boot 推崇約定大於配置的方式以便於你可以儘量快速的啓動並運行程序。apache
其實人們把Spring Boot 稱爲搭建程序的腳手架
。其最主要做用就是幫咱們快速的構建龐大的spring項目,而且儘量的減小一切xml配置,作到開箱即用,迅速上手,讓咱們關注與業務而非配置。安全
java一直被人詬病的一點就是臃腫、麻煩。當咱們還在辛苦的搭建項目時,可能Python程序員已經把功能寫好了,究其緣由注意是兩點:springboot
複雜的配置,服務器
項目各類配置實際上是開發時的損耗, 由於在思考 Spring 特性配置和解決業務問題之間須要進行思惟切換,因此寫配置擠佔了寫應用程序邏輯的時間。app
一個是混亂的依賴管理。maven
項目的依賴管理也是件吃力不討好的事情。決定項目裏要用哪些庫就已經夠讓人頭痛的了,你還要知道這些庫的哪一個版本和其餘庫不會有衝突,這難題實在太棘手。而且,依賴管理也是一種損耗,添加依賴不是寫應用程序代碼。一旦選錯了依賴的版本,隨之而來的不兼容問題毫無疑問會是生產力殺手。
而SpringBoot讓這一切成爲過去!
Spring Boot 簡化了基於Spring的應用開發,只須要「run」就能建立一個獨立的、生產級別的Spring應用。Spring Boot爲Spring平臺及第三方庫提供開箱即用的設置(提供默認設置,存放默認配置的包就是啓動器),這樣咱們就能夠簡單的開始。多數Spring Boot應用只須要不多的Spring配置。
咱們可使用SpringBoot建立java應用,並使用java –jar 啓動它,就能獲得一個生產級別的web工程。
Spring Boot 主要目標是:
更多細節,你們能夠到官網查看。
接下來,咱們就來利用SpringBoot搭建一個web工程,體會一下SpringBoot的魅力所在!
咱們先新建一個空的工程:
工程名爲demo:
新建一個model:
使用maven來構建:
而後填寫項目座標:
目錄結構:
項目結構:
看到這裏不少同窗會有疑惑,前面說傳統開發的問題之一就是依賴管理混亂,怎麼這裏咱們還須要管理依賴呢?難道SpringBoot不幫咱們管理嗎?
彆着急,如今咱們的項目與SpringBoot尚未什麼關聯。SpringBoot提供了一個名爲spring-boot-starter-parent的工程,裏面已經對各類經常使用依賴(並不是所有)的版本進行了管理,咱們的項目須要以這個項目爲父工程,這樣咱們就不用操心依賴的版本問題了,須要什麼依賴,直接引入座標便可!
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent>
爲了讓SpringBoot幫咱們完成各類自動配置,咱們必須引入SpringBoot提供的自動配置依賴,咱們稱爲啓動器
。由於咱們是web項目,這裏咱們引入web啓動器:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
須要注意的是,咱們並無在這裏指定版本信息。由於SpringBoot的父工程已經對版本進行了管理了。
這個時候,咱們會發現項目中多出了大量的依賴:
這些都是SpringBoot根據spring-boot-starter-web這個依賴自動引入的,並且全部的版本都已經管理好,不會出現衝突。
默認狀況下,maven工程的jdk版本是1.5,而咱們開發使用的是1.8,所以這裏咱們須要修改jdk版本,只須要簡單的添加如下屬性便可:
<properties> <java.version>1.8</java.version> </properties>
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.leyou.demo</groupId> <artifactId>springboot-demo</artifactId> <version>1.0-SNAPSHOT</version> <properties> <java.version>1.8</java.version> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
Spring Boot項目經過main函數便可啓動,咱們須要建立一個啓動類:
而後編寫main函數:
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
接下來,咱們就能夠像之前那樣開發SpringMVC的項目了!
咱們編寫一個controller:
代碼:
@RestController public class HelloController { @GetMapping("hello") public String hello(){ return "hello, spring boot!"; } }
配置文件除了可使用application.properties類型,還可使用後綴名爲: .yml 或者 .yaml的類型,也就是:application.yml或者application.yaml
Yaml是一種簡潔的非標記語言。Yaml是以數據爲中心,使用空白,縮進,分行組織數據,從而使得表示更加簡潔易讀。
基本格式:
#服務端口 server: port: 8080
若是兩個配置文件都有,會把兩個文件的配置合併,若是有重複屬性,以Properties中的爲準
接下來,咱們運行main函數,查看控制檯:
而且能夠看到監聽的端口信息:
/hello
路徑已經映射到了HelloController
中的hello()
方法打開頁面訪問:http://localhost:8080/hello
測試成功了!