一步步學習SpringBoot(一) 快速搭建一個web,springboot搭建web
適應讀者
- 前端工程師(java系的公司)
- 前端架構師(java系的公司)
- java工程師
- 測試工程師(java系的公司)
什麼是SpringBoot?
Spring Boot便是一個社區反饋推動的項目. Spring Boot可以說是至少近5年來Spring乃至整個Java社區最有影響力的項目之一。Spring Boot主要包含以下特性:直接嵌入Tomcat, Jetty或者Undertow作為Servlet container。從此之後再也不用將應用程式打包成war然後上傳到application server裡面了。 提供了starter POM, 能夠非常方便的進行包管理, 很大程度上減少了jar hell或者dependency hell 自動進行Spring架構的配置,節省程式員大量的時間和精力,能夠讓程式員專註在商務邏輯代碼的編寫上 不需要任何第三方系統,更不需要用xml來進行架構的配置,所以SpringBoot讓java應用變的更簡單。
SpringBoot環境準備
- jdk1.8 or later (去java官網下載,記得要1.8或以上)
- maven3.0+ or gradle2.3+, 本文使用maven。
- 你喜歡的一個ide,本文的demo是用 idea。
通過idea建立一個java project
開啟idea,建立一個project,選擇Maven
繼續點擊next, 設定projectname為helloworld,最後點擊finish如下,
一個簡單的java project建立好了。
通過maven構建SpringBoot的jar包與依賴包
maven是一個出色的java構建工具,我們通過maven來構建springboot的jar包與依賴,maven用法非常簡單,本文不重點描述maven的用法,不熟悉maven的同學可以自行去官網學習。
開啟pom.xml, 將以下內容拷貝進去,主要
<?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>helloWorld</groupId>
<artifactId>helloworld</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
</project>
儲存pom.xml後, idea通過maven完成構建,現在這個java project已經具備了SpringBoot的特性。
寫一個controller
這裡面用了一個註解,SpringBoot特性的註解。
@RestController
它相當於SpringMVC的 @Controller與@ResponseBody的合體,大家先別急,我們後面的文章會詳細介紹,我們先讓程式運行起來,代碼如下。
package com.helloworld.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * Created by fangxiao on 2017/3/24. */@RestControllerpublic class Controller { @RequestMapping("/helloworld") public String helloWorld() { return "helloworld"; }}
寫一個Application啟動main方法
SpringBoot是通過main方法直接將內建的tomcat啟動的,大家還是別急,我們先讓程式運行起來,程式如下
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * Created by fangxiao on 2017/3/25. */@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
這裡最神奇的時註解@SpringBootApplication, 它的原理是怎樣的呢,在我後面的文章會講到。
啟動服務
編碼完畢,我們要啟動一個web服務了,啟動的方法可以通過gradle或者maven命令,我習慣直接通過jar命令的方式啟動,對於IEDA來說,直接run這個Application類就Ok了
大家可以看到內建的tomcat(SpringBoot內建的應用伺服器預設是tomcat)已經啟動了,
我們剛剛在controller裡面做了一個路由/helloworld, 我們開啟瀏覽器直接輸入localhost:8080/helloworld, 可以看到如下Response
自此,我們已經搭建好了一個java web,可能有同學會問,如果想response一個json介面應該怎麼實現,這個也很easy,在controller再增加一個路由,代碼如下,
@RequestMapping("/user") public Map getUsers() { Map map = new HashMap<>(); map.put("name","fangxiao"); map.put("age","15"); return map; }
我們啟動下伺服器,訪問localhost:8088/user,看到結果如下:
這就是個簡單的介面服務了,前端通過ajax取到可以做相應的資料渲染。
到了這裡大家也許會有些疑問,就這麼幾行代碼就啟動了一個web服務,不用配置web.xml,也不用配置spring其他的依賴注入,更不用專門維護一個tomcat和打war包,這些就是SpringBoot令人振奮的地方,約定大於配置,大大簡化了配置成本,在後面的文章中我會逐步介紹它更多的特性與原理。
總結
本文我們通過SpringBoot的特性快速搭建了一個web,我們只用了幾行代碼就啟動了一個web並且訪問了一個Restful的服務,通過約定大於配置的思想比SpringMVC簡潔了很想,希望我的這一系列能提供給大家一些思路和做一些嘗試,所有的例子可以在https://github.com/fangxiao/springboot查看,如想瞭解更多技術,請關注我的公眾號。