狂神說SpringBoot01:Hello,World!

 

狂神說SpringBoot系列連載課程,通俗易懂,基於SpringBoot2.2.5版本,歡迎各位狂粉轉發關注學習。java

微信公衆號:狂神說(首發)    Bilibili:狂神說Java(視頻)web

未經做者受權,禁止轉載spring

 

SpringBoot簡介

回顧什麼是Spring

Spring是一個開源框架,2003 年興起的一個輕量級的Java 開發框架,做者:Rod Johnson  。數據庫

Spring是爲了解決企業級應用開發的複雜性而建立的,簡化開發。apache

 

Spring是如何簡化Java開發的

爲了下降Java開發的複雜性,Spring採用瞭如下4種關鍵策略:編程

一、基於POJO的輕量級和最小侵入性編程,全部東西都是bean;瀏覽器

二、經過IOC,依賴注入(DI)和麪向接口實現鬆耦合;springboot

三、基於切面(AOP)和慣例進行聲明式編程;微信

四、經過切面和模版減小樣式代碼,RedisTemplate,xxxTemplate;app

 

什麼是SpringBoot

學過javaweb的同窗就知道,開發一個web應用,從最初開始接觸Servlet結合Tomcat, 跑出一個Hello Wolrld程序,是要經歷特別多的步驟;後來就用了框架Struts,再後來是SpringMVC,到了如今的SpringBoot,過一兩年又會有其餘web框架出現;大家有經歷過框架不斷的演進,而後本身開發項目全部的技術也不斷的變化、改造嗎?建議均可以去經歷一遍;

言歸正傳,什麼是SpringBoot呢,就是一個javaweb的開發框架,和SpringMVC相似,對比其餘javaweb框架的好處,官方說是簡化開發,約定大於配置,  you can "just run",能迅速的開發web應用,幾行代碼開發一個http接口。

全部的技術框架的發展彷佛都遵循了一條主線規律:從一個複雜應用場景 衍生 一種規範框架,人們只須要進行各類配置而不須要本身去實現它,這時候強大的配置功能成了優勢;發展到必定程度以後,人們根據實際生產應用狀況,選取其中實用功能和設計精華,重構出一些輕量級的框架;以後爲了提升開發效率,嫌棄原先的各種配置過於麻煩,因而開始提倡「約定大於配置」,進而衍生出一些一站式的解決方案。

是的這就是Java企業級應用->J2EE->spring->springboot的過程。

隨着 Spring 不斷的發展,涉及的領域愈來愈多,項目整合開發須要配合各類各樣的文件,慢慢變得不那麼易用簡單,違背了最初的理念,甚至人稱配置地獄。Spring Boot 正是在這樣的一個背景下被抽象出來的開發框架,目的爲了讓你們更容易的使用 Spring 、更容易的集成各類經常使用的中間件、開源軟件;

Spring Boot 基於 Spring 開發,Spirng Boot 自己並不提供 Spring 框架的核心特性以及擴展功能,只是用於快速、敏捷地開發新一代基於 Spring 框架的應用程序。也就是說,它並非用來替代 Spring 的解決方案,而是和 Spring 框架緊密結合用於提高 Spring 開發者體驗的工具。Spring Boot 以約定大於配置的核心思想,默認幫咱們進行了不少設置,多數 Spring Boot 應用只須要不多的 Spring 配置。同時它集成了大量經常使用的第三方庫配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 應用中這些第三方庫幾乎能夠零配置的開箱即用。

簡單來講就是SpringBoot其實不是什麼新的框架,它默認配置了不少框架的使用方式,就像maven整合了全部的jar包,spring boot整合了全部的框架 。Spring Boot 出生名門,從一開始就站在一個比較高的起點,又通過這幾年的發展,生態足夠完善,Spring Boot 已經當之無愧成爲 Java 領域最熱門的技術。

Spring Boot的主要優勢:

  • 爲全部Spring開發者更快的入門

  • 開箱即用,提供各類默認配置來簡化項目配置

  • 內嵌式容器簡化Web項目

  • 沒有冗餘代碼生成和XML配置的要求

真的很爽,咱們快速去體驗開發個接口的感受吧!

Hello,World

準備工做

咱們將學習如何快速的建立一個Spring Boot應用,而且實現一個簡單的Http請求處理。經過這個例子對Spring Boot有一個初步的瞭解,並體驗其結構簡單、開發快速的特性。

個人環境準備:

  • java version "1.8.0_181"

  • Maven-3.6.1

  • SpringBoot 2.x 最新版

開發工具:

  • IDEA

     

建立基礎項目說明

Spring官方提供了很是方便的工具讓咱們快速構建應用

Spring Initializr:https://start.spring.io/

項目建立方式一:使用Spring Initializr 的 Web頁面建立項目

一、打開  https://start.spring.io/

二、填寫項目信息

三、點擊」Generate Project「按鈕生成項目;下載此項目

四、解壓項目包,並用IDEA以Maven項目導入,一路下一步便可,直到項目導入完畢。

五、若是是第一次使用,可能速度會比較慢,包比較多、須要耐心等待一切就緒。

 

項目建立方式二:使用 IDEA 直接建立項目

一、建立一個新項目

二、選擇spring initalizr , 能夠看到默認就是去官網的快速構建工具那裏實現

三、填寫項目信息

四、選擇初始化的組件(初學勾選 Web 便可)

五、填寫項目路徑

六、等待項目構建成功

 

項目結構分析:

經過上面步驟完成了基礎項目的建立。就會自動生成如下文件。

一、程序的主啓動類

二、一個 application.properties 配置文件

三、一個 測試類

四、一個 pom.xml

 

pom.xml 分析

打開pom.xml,看看Spring Boot項目的依賴:

<!-- 父依賴 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.5.RELEASE</version>
    <relativePath/>
</parent>

<dependencies>
    <!-- web場景啓動器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- springboot單元測試 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <!-- 剔除依賴 -->
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

<build>
    <plugins>
        <!-- 打包插件 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

 

編寫一個http接口

一、在主程序的同級目錄下,新建一個controller包,必定要在同級目錄下,不然識別不到

二、在包中新建一個HelloController類

@RestController public class HelloController { @RequestMapping("/hello") public String hello() { return "Hello World"; } }

三、編寫完畢後,從主程序啓動項目,瀏覽器發起請求,看頁面返回;控制檯輸出了 Tomcat 訪問的端口號!

簡單幾步,就完成了一個web接口的開發,SpringBoot就是這麼簡單。因此咱們經常使用它來創建咱們的微服務項目!

 

 

將項目打成jar包,點擊 maven的 package

 

 若是遇到以上錯誤,能夠配置打包時 跳過項目運行測試用例

<!-- 在工做中,不少狀況下咱們打包是不想執行測試用例的 多是測試用例不完事,或是測試用例會影響數據庫數據 跳過測試用例執 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <!--跳過項目運行測試用例-->
        <skipTests>true</skipTests>
    </configuration>
</plugin>

若是打包成功,則會在target目錄下生成一個 jar 包

 

打成了jar包後,就能夠在任何地方運行了!OK

彩蛋

如何更改啓動時顯示的字符拼成的字母,SpringBoot呢?也就是 banner 圖案;

只需一步:到項目下的 resources 目錄下新建一個banner.txt 便可。

圖案能夠到:https://www.bootschool.net/ascii 這個網站生成,而後拷貝到文件中便可!

 

 

 SpringBoot這麼簡單的東西背後必定有故事,咱們以後去進行一波源碼分析!

 

 

相關文章
相關標籤/搜索