一步步學習SpringBoot(一) 快速搭建一個web,springboot搭建web

來源:互聯網
上載者:User

一步步學習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查看,如想瞭解更多技術,請關注我的公眾號。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.