1. 程式人生 > >Spring Boot 官方文件學習(一)入門及使用

Spring Boot 官方文件學習(一)入門及使用

轉載:http://www.cnblogs.com/larryzeal/p/5799195.html

目錄:  一、內建Servlet Container:
Name Servlet Version Java Version

Tomcat 8

3.1

Java 7+

Tomcat 7

3.0

Java 6+

Jetty 9.3

3.1

Java 8+

Jetty 9.2

3.1

Java 7+

Jetty 8

3.0

Java 6+

Undertow 1.3

3.1

Java 7+

此外,你仍然可以部署Spring Boot專案到任何相容Servlet3.0+的容器。
二、使用Spring Boot。     你可以像使用標準的Java庫檔案一樣使用Spring Boot。簡單的將需要的 spring-boot-*.jar 新增到classpath即可。     Spring Boot不要求任何特殊的工具整合,所以可以使用任何IDE,甚至文字編輯器。     只是,仍然建議使用build工具:Maven 或 Gradle。     Spring Boot依賴 使用 org.springframework.boot groupId。     通常,讓你的Maven POM檔案繼承 spring-boot-starter-parent,並宣告一個或多個 Starter POMs依賴即可。Spring Boot也提供了一個可選的 Maven Plugin來建立可執行的jars。   如下: 複製程式碼
<?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.example</groupId> <artifactId>myproject</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- Inherit defaults from Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <!-- Add typical dependencies for a web application --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!-- Package as an executable jar --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
複製程式碼     需要注意的是, spring-boot-starter-parent 是一個非常好的方法,但並不適用於所有情況。有時你需要繼承其他的POM,或者你不喜歡預設的設定。-- 辦法見後面。 三、安裝Spring Boot CLI。     這是一個命令列工具,可以執行Groove指令碼。是執行一個Spring Boot的最快途徑。     -- 好吧,Linux下無敵,Win下還是休息吧。 四、開發一個簡單的Spring Boot應用--使用最原始的方式。     務必注意:前提是maven + jdk。     1、建立一個資料夾。SpringBootSample01     2、新建一個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>com.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
    </parent>
    <!-- Additional lines to be added here... -->
</project>
複製程式碼     3、上面沒有新增任何依賴,但仍然可以build。命令列:mvn package。注意,是當前路徑下 //SpringBootSample01/ 。         當然,你也可以使用IDE,不過使用文字編輯器會讓我們對它更理解。              4、現在需要新增依賴 -- 其實就是把依賴的jar新增到buildpath。         由於我們已經繼承了 spring-boot-starter-parent ,而 spring-boot-starter-parent 又提供了 dependency-management ,所以我們可以忽略被選中依賴的版本。         在新增依賴之前,我們先看一下現在已有什麼:mvn dependency:tree。該命令會列印一個當前專案的依賴樹。         結果表明,當前沒有任何依賴。             OK,現在我們新增一個Starter 模組。
複製程式碼
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
複製程式碼             現在再次檢視一下依賴樹。             可以看出,spring-boot-starter-web  包含了很多內容,spring-webmvc、spring-web、jackson、validation、tomcat、starter。       5、現在就可以開始寫程式碼了。         由於Maven預設編譯路徑為 src/main/java 下面的原始碼,所以,預設設定下,需要建立這些資料夾。                 然後,編寫檔案 src/main/java/Example.java: 複製程式碼
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;
@RestController
@EnableAutoConfiguration
public class Example {
    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Example.class, args);
    }
}
複製程式碼         這裡我們只需要關心 @EnableAutoConfiguration 即可。這個註解是讓Spring Boot猜測 你想怎麼配置Spring,但實際上,它是根據你新增到classpath中的依賴來判斷的。         注意,自動配置 可以配合 Starter POMs 一起工作,但二者不是捆綁到一起的。你仍然可以將Starter POMs中的依賴單獨揀出使用,Spring Boot還是會自動配置。         6、啟動專案。由於我們使用了 spring-boot-starter-parent POM,所以可以使用 mvn spring-boot:run來啟動專案(根路徑)。{yunjinwang注:如果端口出現衝突,可使用mvn spring-boot:run -Dserver.port=9090來指定其它埠}         7、打包。executable jars 又稱 fat jars,是可以直接在生產環境中執行的,包含所有編譯生成的class檔案以及依賴包。             注意,Spring Boot的這種打包方式需要使用Spring Boot提供的 spring-boot-maven-plugin 。          複製程式碼
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
複製程式碼             注意,spring-boot-starter-parent POM中包含了 <executions> 的配置資訊,綁定了 repackage goal (maven)。如果你不使用parent POM,你需要自己來宣告這個配置資訊。             現在,可以打包了: mvn package 。                          現在,你可以在/target目錄下看到 myproject-0.0.1-SNAPSHOT.jar ,大約10 Mb左右。可以通過 jar tvf target/myproject-0.0.1-SNAPSHOT.jar 來檢視其中的內容。             此外,在/target目錄下,還可以看到 myproject-0.0.1-SNAPSHOT.jar.original ,這是Maven打包出來的---在Spring Boot repackage 之前。 8、執行。正常的jar執行:java -jar [-Dserver.port=9090] target/myproject-0.0.1-SNAPSHOT.jar  ,啟動資訊如下:                          執行 ctrl+c,退出。 五、Dependency Management 每個版本的Spring Boot都提供了一個依賴列表。這個列表包含了你可能通過Spring Boot用到的所有的Spring模組以及第三方庫。該列表可以以BOM(Bills of Material)的形式支援Maven。 --- 怎麼理解BOM和Starter?什麼區別?? 1、繼承 spring-boot-starter-parent :       spring-boot-starter-parent project        預設是 Java 1.6。 Resource filtering。exec plugin、surefire、Git commit ID、shade。       Resource filtering for application.properties 和 application.yml,以及,profile-specific file,如application-foo.properties 或 application-foo.yml。       -- 注意Maven filtering使用 @[email protected] 佔位符,你可以在Maven property中覆蓋:resource.delimiter。        如果不想使用Spring Boot中的預設版本,可以在<properties>覆蓋相應的版本,如,想使用不同版本的Spring Data,具體如下:
<properties>
    <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
</properties>
       想使用不同版本的JDK
<!-- 使用 java 1.8 -->
<java.version>1.8</java.version>
2、不繼承 spring-boot-starter-parent : 這種情況下,仍然可以使用dependency management,但不能使用plugin management啦。方式如下: 複製程式碼
<dependencyManagement>
     <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.4.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
複製程式碼 注意,scope是 import 。而且,這種情況下,不再允許在<properties>覆蓋相應的版本。如果要使用其他版本,需要在上面的前面新增一個完整的dependency。如下: 複製程式碼
<dependencyManagement>
    <dependencies>
        <!-- Override Spring Data release train provided by Spring Boot -->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-releasetrain</artifactId>
            <version>Fowler-SR2</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.4.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
複製程式碼 另外,Spring Boot還提供了一個Maven Plugin:spring-boot-maven-plugin,用於將專案打包成fat jar(executable jar)。 繼承時只需要宣告一下即可使用: 複製程式碼
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
複製程式碼 六、Starters 可以建立自己的Starter,但名字格式不能是 spring-boot-starter-*,而是 *-spring-boot-starter。類似Maven外掛的規則。 七、自動配置 @Import 和 @ComponentScan 類似; @EnableAutoConfiguration 和 @SpringBootApplication 類似;---注意,只能使用一次,建議用在primary @Configuration class上。 注意,自動配置永遠是第二位的,一旦你配置自己的東西,那自動配置的就會被覆蓋。 檢視自動配置都配置了什麼,以及為什麼,啟動應用的時候加上 --debug即可。 禁用特定的自動配置: 複製程式碼
import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})

            
           

相關推薦

Spring Boot 官方學習入門使用

轉載:http://www.cnblogs.com/larryzeal/p/5799195.html 目錄:  一、內建Servlet Container: Name Servlet Version Java Version Tomcat 8 3.1

Spring 4 官方學習WebSocket支援

個人提示:如果需要用到頁面推送,高頻且要低延遲,WebSocket無疑是最佳選擇。否則還是輪詢和long polling吧。 做了一個小demo放在碼雲上,有興趣的可以看一下,簡單易懂:websocket-demo。 本部分覆蓋了web應用中Sprin

xlwings學習--搭建開發環境

0.開發環境Anaconda3-5.1.0-Windows-x86_64pycharm 2018.1.31.建立專案開啟pycharm,file→new project如下圖操作①選擇scientific專案型別②在location處為專案修改名字為xlwing點選creat

演算法工程師修仙之路:python3官方筆記

本筆記來自於python手冊的中文版 第一章 開胃菜 雖然 Python 易於使用,但它卻是一門完整的程式語言。 與 Shell 指令碼或批處理檔案相比,它為編寫大型程式提供了更多的結構和支援。 Python 提供了比 C 更多的錯誤檢查

PureMVC 官方翻譯

    最近在學習PureMVC框架,感覺最權威的還是閱讀官方文件,順便翻譯了下全當記筆記了。 PureMVC概覽     這篇文件他討論PureMVC框架的類和介面,使用UML來闡述它們的角色、職責和協作。     PureMVC框架有一個非常細小的目標一一就是幫助你把應用程式編碼之間的關聯分離成明確

Autofac官方翻譯——Getting Started

立即開始 將Autofac整合到你的應用的基本模式如下: 按照控制反轉(IoC)的思想構建你的應用程式 新增Autofac引用 在application啟動程式碼裡… 建立ContainerBuilder物件 註冊元件 Build容器並且儲存以備用 在程式

Kafka官方翻譯產品概述

流平臺的三要素: 1、提供釋出/訂閱記錄流的能力,類似於訊息佇列; 2、對記錄流的儲存有容錯能力; 3、可以即時處理記錄流。kafka可用於兩大類應用: 1、建立實時流資料管道,在系統或應用之間進行可靠傳輸; 2、建立基於實時流的應用,可以傳輸或處理資料流。先知概念: *k

Django 2.0 之Models(模型) 官方翻譯

以下翻譯是自己學習的時候順便記下的,如果有不對的地方還請指正。 模型是關於你的資料的唯一、確定的資料來源。它包含你所儲存的資料的基本欄位和行為。通常,每個模型對映到一個數據庫表。 基礎知識: 每一個模型都是一個Python類,它是 django.db.models.Mo

spring boot 微信點餐 模組架構介紹

1、專案架構2系統演進3、兩大微服務架構4、專案表結構關係5、建表語句(基於oracel)-- Create tablecreate table PRODUCT_INFO(  product_id          VARCHAR2(32) not null,  produc

Pytest學習- 入門基礎

### 前言 十一也趕上自己剛出院,本想在十一放假前用假期刷完Pytest的,結果被希洛克神話吸引,再次迴歸毒奶粉,一直奮鬥到距離上班還有兩天,引導石刷沒了,就沒了智慧。 當然也沒出過神話,結果一怒之下解除安裝,開始收收心,準備學習,用了兩個下午時間看了下pytest的官方文件,全是英文的,用谷歌翻譯看的也

Spring Boot 入門教程學習 按照spring boot官方和自己理解整理

建立Spring Boot maven專案   1. 在spring 官網中建立專案到本地   首先選擇maven project  java 之後 填寫 group id Artifactid  完成之後,  點選 generate Project 生成本地專

Spring Boot官方筆記--PartIV: Spring Boot特性

23. SpringApplication特性 Banner SpringApplicationBuilder Events and Listeners Web Environment ApplicationArguments: 獲取SpringApplication.run(...)

Spring MVC 4.2.4 實踐--- 菜鳥從零開始學系列

1 前言 本文後續將開啟一個系列,順著作者學習 Spring MVC 文件的腳步,從零開始搭建一個基於 Spring MVC 的 web 應用,並且根據 Spring MVC 的文件內容,選擇現有的,用的比較多的,實現性比較好的特性,基於其程式碼實現,來講解其原始碼和背後的原理,這既是對自己在 Spring

Spring Boot 官方筆記

【轉載】原文來源:https://blog.csdn.net/luqiang81191293/article/details/54949197 Spring Boot每次釋出時都會提供一個它所支援的精選依賴列表。實際上,在構建配置裡你不需要提供任何依賴的版本,因為Spring Boot已

Spring Boot官方》16. 自動配置

16. 自動配置 Spring Boot的自動配置會嘗試根據你新增進來的jar依賴來自動配置你的Spring應用。例如,如果HSQLDB在你的classpath路徑上,你沒有手動配置任何資料庫連線實體類,我們還會自動配置記憶體資料庫。 你可以有選擇的實現自動配置,可以向 @Configura

Spring Boot官方》18. 使用 @SpringBootApplication註解

許多使用Spring Boot的開發者總是有帶有@Configuration, @EnableAutoConfiguration 和 @ComponentScan 註解的主類。由於這些註解很頻繁地被用在一起(特別是遵循前面的最佳實踐),Spring Boot提供了一個方便的註解@SpringB

Python培訓知識總結系列- 第三章 Python3操作

readline new socket 總結 排序 tin strip() list 是否 open 123456789f = open(‘filename‘,‘r‘) # 讀模式f = open(‘filename‘,‘w‘) # 寫模式f = open(‘filenam

Python練習之基礎語法、數據類型、字符編碼、操作

AD 編碼 基礎 orm 分享 基本知識 mage fff pos 最近做了幾道練習題,用的都是一些python的基本知識,但每道題都有層次,需要紮實的基礎功底。 第一道 基礎需求: 讓用戶輸入用戶名密碼 認證成功後顯示歡迎信息 輸錯三次後退出程序 升級需求: 可以支持多

[筆記]何為Linux及其系統

發展 centos spl 就是 中文 targe 辦公 即時通 鳥哥 Linux是免費開源的,任何人可以建立和編譯其源代碼,並分發給別人。 這就是為什麽Linux有許多版本。 Linux針對不同的用戶都有不同類型的版本與之對應: 有些具有強大的安全性和支持性,Redhat

webpack官方檔分析:安裝

目錄 單獨 https div script version clas .com 我們 一:安裝 1、首先要安裝Node.js->node.js下載 2、本地安裝   要安裝最新版本或特定版本,運行如下: npm install --save-dev webpack