1. 程式人生 > >SpringBoot | 第一章:第一個 SpringBoot 應用

SpringBoot | 第一章:第一個 SpringBoot 應用

來源:oKong ,

my.oschina.net/xiedeshou/blog/1853320

springboot簡單介紹

概述

隨著動態語言的流行(Ruby、Groovy、Scala、Node.js),Java的開發顯得格外的笨重:繁多的配置、低下的開發效率、複雜的部署流程以及第三方技術整合難度大。

在上述環境下,Springboot應運而生。它使用”習慣優於配置”(專案中存在大量的配置,此外還內建一個習慣性的配置,讓你無須手動進行配置)的理念讓你的專案快速執行起來。使用springboot很容易建立一個獨立執行(執行jar,內嵌servlet容器)、準生產級別的基於Spring框架的專案,使用springboot你可以不用或者只需要很少的Spring配置。

Spring Boot 的核心功能

獨立執行的Spring專案

Spring Boot可以以jar包的形式獨立執行,執行一個Spring Boot專案只需要通過java -jar xx.jar。

內建Servlet容器

Spring Boot可選擇內嵌Tomcat、Jetty或者Undertow,這樣無須以war包形式部署。

提供starter簡化maven配置

Spring提供了一系列的starter pom來簡化maven依賴載入,例如:當你使用了spring-boot-starter-web時,會自動加入相關依賴,無需你手動一個一個的新增座標依賴。

自動配置Spring

Spring Boot會根據在類路徑中的jar包、類,為jar包裡的類自動配置Bean,這樣會極大地減少我們要使用的配置。當然,Spring Boot只是考慮了大多數的開發場景,並不是所有場景,若在實際開發中,我們需要自動配置bean,而Spring Boot沒有提供支援,則可以自定義自動配置。

無程式碼生成和xml配置

Spring Boot的神奇的不是藉助於程式碼生成來實現的,而是通過條件註解來實現的,這是Spring 4.x提供的新特性,Spring 4.x提倡使用java配置和註解配置相結合,而Spring Boot不需要任何xml配置即可實現Sping Boot的所有配置。

優缺點

優點

  1. 快速構建專案:省略了繁瑣且重複的xml配置,分分鐘構建一個web工程;

  2. 對主流開發框架的無配置整合:提供了很多Starter 依賴包,開箱即用,無需多餘配置;

  3. 專案可獨立執行:無需外部依賴Servlet容器;

  4. 極大地提供了開發、部署效率;

  5. 監控簡單:提供了actuator包,可以使用它來對你的應用進行監控。

缺點

  1. 依賴太多:一個簡單的SpringBoot應用都有好幾十M只有;

  2. 缺少監控整合方案、安全管理方案:只提供基礎監控,要實現生產級別的監控,監控方案需要自己動手解決;(後期講解soringCloud時,會結合pinpoint和skywalking分散式鏈路工具進行應用監控)

工程搭建

使用的工具為:Spring Tool Suite(3.9.3.RELEASE) SpringBoot:1.5.14.RELEASE

Spring Tool Suite 下載地址:https://spring.io/tools/sts/all

建立專案

利用**Spring Initializr**進行快速建立專案

選擇Dashboard–>CREATE SPRING STARTER PROJECT進行建立專案,或者可以選擇file–>new–>Spring Starter Project,開啟建立面板

第一種方式:

第二種方式:

出現建立面板,填寫專案資訊

這裡url建議直接填寫:https://start.spring.io(預設是http方式)

maven相關命名說明

  1. Group:一般為逆向域名格式,如本部落格域名為lqdev.cn,則group一般以cn.lqdev開頭

  2. Artifact:唯一標識,一般為專案名稱。 具體maven相關資訊,可自行搜尋,這裡只簡單闡述

選擇依賴包和版本

除此下載包時,可能會比較慢,建議替換成阿里雲的maven映象

專案結構

- src

    -main

        -java

            -cn.lqdev.learning.springboot.chapter1

                #主函式,啟動類,執行它如果運行了 Tomcat、Jetty、Undertow 等容器

                -Chapter1Application    

        -resouces

            #存放靜態資源 js/css/images 等

            - statics

            #存放 html 模板檔案

            - templates

            #主要的配置檔案,SpringBoot啟動時候會自動載入application.properties/bootstrap.properties        

            - application.properties

    #測試檔案存放目錄        

    -test

 # pom.xml 檔案是Maven構建的基礎,裡面包含了我們所依賴JAR和Plugin的資訊

- pom

pom依賴

由於使用了Spring Initializr直接建立專案,相關依賴自動新增好了。

<?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>cn.lqdev.learning</groupId>

    <artifactId>springboot-chapter1</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <packaging>jar</packaging>

    <name>chapter-1</name>

    <description>Spring Boot | 第一章:第一個Springboot應用</description>

    <!-- Springboot的版本,大家選擇時,應該選擇 RELEASE 版本 -->

    <parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>1.5.14.RELEASE</version>

        <relativePath/> <!-- lookup parent from repository -->

    </parent>

    <properties>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <java.version>1.8</java.version>

    </properties>

    <dependencies>

        <!-- 內嵌了tomcat伺服器,開發簡單的web應用,此依賴即可  -->

         <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <!-- 測試包 -->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

        </dependency>

    </dependencies>

    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

            </plugin>

        </plugins>

    </build>

</project>

主入口

/**

 *  啟動類

 * @author oKong 

 *

 */

@SpringBootApplication

public class Chapter1Application {

    public static void main(String[] args) {

        SpringApplication.run(Chapter1Application.class, args);

    }

}

編寫controller

/**

 * 第一個springboot應用 

 * @author oKong

 *

 */

//@RestController = @Controller + @ResponseBody 預設直接返回json

@RestController

public class DemoController {

    @RequestMapping(value = "/demo", method = RequestMethod.GET)

    public String demo() {

        return "hello,SpringBoot!";

    }

}

啟動應用

直接Chapter1Application,右鍵 run as –> Spring Boot App 即可。

看見以下提示,說明啟動成功:

2018-07-11 22:47:38.170  INFO 15396 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)

簡單說明

  1. springboot 預設的埠號為:8080,此時瀏覽器訪問:127.0.0.1:8080/demo即可檢視。

  2. 需要修改預設埠號時及上下文路徑時,只需要在application.properties設定以下屬性:

# 埠號

server.port=8888

# 應用上下文路徑

server.context-path=/chapter1

訪問:http://127.0.0.1:8888/chapter1/demo

自此,一個簡單的SpringBoot就開發完成了。比起原來的springmvc時的開發效率,簡直是一個質的飛躍,無需再煩擾煩人的xml配置檔案了。終於可以快樂的擼程式碼了~

總結

目前網際網路上很多大佬都有springboot系列教程,如有雷同,請多多包涵了。本文是作者在電腦前一字一句敲的,每一步都是親身實際過的。若文中有所錯誤之處,還望提出,謝謝。