一步步學習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,選擇Mavenjava

繼續點擊next, 設置projectname爲helloworld,最後點擊finish以下,git

一個簡單的java project創建好了。程序員

經過maven構建SpringBoot的jar包與依賴包

maven是一個出色的java構建工具,咱們經過maven來構建springboot的jar包與依賴,maven用法很是簡單,本文不重點描述maven的用法,不熟悉maven的同窗能夠自行去官網學習。github

打開pom.xml, 將如下內容拷貝進去,主要web

<?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的特性。ajax

 

寫一個controller


這裏面用了一個註解,SpringBoot特性的註解。spring

@RestControllerapache

它至關於SpringMVC的 @Controller與@ResponseBody的合體,你們先別急,咱們後面的文章會詳細介紹,咱們先讓程序運行起來,代碼以下。json

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.
 */
@RestController
public 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.
 */

@SpringBootApplication
public 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查看,如想了解更多技術,請關注個人微信公衆號。

相關文章
相關標籤/搜索