Springboot快速入門篇,圖文並茂

Springboot快速入門篇,圖文並茂

文章已託管到GitHub,你們能夠去GitHub查看閱讀,歡迎老闆們前來Star!
搜索關注微信公衆號 【碼出Offer】 領取各類學習資料!
java


image-20200809125922162
image-20200809125922162

1、Springboot概述

1.1 Springboot簡介

SpringBoot是由Pivotal團隊研發的,SpringBoot並非一門新技術,只是將以前經常使用的Spring,SpringMVC,data-jpa等經常使用的框架封裝到了一塊兒,幫助你隱藏這些框架的整合細節,實現敏捷開發。簡單來講,SpringBoot就是一個啓動器。git

1.2 Springboot的特色

  • SpringBoot項目不須要模板化的配置。
  • SpringBoot中整合第三方框架時,只須要導入相應的starter依賴包,就自動整合了。
  • SpringBoot默認只有一個.properties的配置文件,不推薦使用xml,後期會採用.java的文件去編寫配置信息。
  • SpringBoot工程在部署時,採用的是jar包的方式,內部自動依賴Tomcat容器,而且提供了多環境的配置。
  • 後期要學習的微服務框架SpringCloud須要創建在SpringBoot的基礎上。

2、快速構建Springboot

2.1 Spring官方快速構建

New Project
image-20200806123015729
image-20200806123015729
Spring Initializer Project Setting
image-20200806132012542
image-20200806132012542
選擇版本和所需依賴
image-20200806132155855
image-20200806132155855
填寫項目名稱和本地存儲路徑
image-20200806132305740
image-20200806132305740

2.2 aliyun快速構建(解決加載失敗)

若是Spring官方的快速構建加載出現問題,可使用aliyun提供的Spingboot快速構建。github

aliyun快速構建Springboot
image-20200806133208551
image-20200806133208551
其餘步驟與Spring官方構建一致

2.3 Spring與aliyun差異

使用Spring官方和aliyun快速構建的Springboot項目是有一些差距的,其實項目結構上沒有本質的差距,只是在pom.xml文件中會出現一系列差距!web

  • aliyun使用並維護着Spring全家桶的2.3版本,其中加入了一些編碼字符集處理與之aliyun所維護的依賴等
  • Spring官方使用並維護着Spring全家桶的2.3.2版本,其中維護使用着Spring官方依賴等

注意: 二者沒有本質差異,咱們只須要使用便可!spring

2.4 導入核心依賴

此核心依賴有着Spring的大多數web依賴apache

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2.5 編寫Controller直接測試

直接訪問路徑便可出現頁面並響應在瀏覽器上!json

@RestController
public class TestController {
    @GetMapping("/test")
    public String test(){
        return "Hello SpringBoot!";
    }
}

3、Springboot目錄結構說明

Springboot目錄結構
image-20200809132750413
image-20200809132750413

4、Springboot的三種啓動方式

4.1 運行啓動類的main方法

運行啓動類的main方法
image-20200809133203728
image-20200809133203728

4.2 使用Maven啓動

使用Maven啓動(mvn spring-boot:run)
image-20200809133408621
image-20200809133408621

4.3 使用Springboot打包的jar文件啓動

首先,Springboot打包方式是jar的方法。默認使用maven 的package打包,而隨之也會觸發springboot內置的springboot:repackage,而springboot的內置再次打包會在此jar文件的基礎上內置一個tomact,也便是說使用Springboot打包的jar文件是能夠執行的!瀏覽器

打包展現
image-20200809133839975
image-20200809133839975
DOS命令行執行
java -jar jar文件路徑/jar包名字

5、Springboot入門註解

5.1 @Configuration和@Bean

  • 以前使用SSM去開發時,在xml文件中編寫bean標籤,可是SpringBoot不推薦使用xml文件。
  • @Configuration註解至關於beans標籤
  • @Bean註解至關於bean標籤
  • id=「方法名 | 註解中的name屬性(優先級更高)」
  • class=「方法的返回結果」

以下,舉例子。tomcat

@Configuration   // 表明當前類是一個配置類
public class UserConfig {
    @Bean(name = "user1")       // 構建一個實例,放到spring容器中
    public User user(){
        User user = new User();
        user.setId(1);
        user.setName("張三");
        return user;
    }
    /* 與其相同做用
    <beans ....>            @Configuration
        <bean id="user1" class="com.ziphtracks.firstspringboot.bean.User" />
    </beans>
     */

}

5.2 @SpringBootApplication

@SpringBootApplication就是一個組合註解:springboot

  • @SpringBootConfiguration就是@Configuration註解,表明啓動類就是一個配置類。
  • @EnableAutoConfiguration幫你實現自動裝配的,SpringBoot工程啓動時,運行一個SpringFactoriesLoader的類,加載META-INF/spring.factories配置類(已經開啓的),經過SpringFactoriesLoader中的load方法,以for循環的方式,一個一個加載。
  • 好處:無需編寫大量的整合配置信息,只須要按照SpringBoot提供好了約定去整合便可。
  • 壞處:若是說你導入了一個starter依賴,那麼你就須要填寫他必要的配置信息。
  • 手動關閉自動裝配指定內容:@SpringBootApplication(exclude = QuartzAutoConfiguration.class)
  • @ComponentScan就至關於 ,幫助掃描註解的。

注意: 你徹底能夠經過上述所說去翻看如下該註解的源碼

源碼
image-20200809135539749
image-20200809135539749

5.3 @SpringBootTest

該註解用於測試啓動項中,用於啓動測試的註解

測試啓動項註解配置
image-20200809141258160
image-20200809141258160

6、Springboot配置文件

6.1 配置文件規範

SpringBoot的配置文件支持properties和yml,甚至他還支持json。

更推薦使用yml文件格式:

  1. yml文件,會根據換行和縮進幫助我們管理配置文件所在位置

  2. yml文件,相比properties更輕量級一些

yml文件的注意事項:

  1. 嚴格遵循換行和縮進

  2. 在填寫value時,必定要在: 後面跟上空格

6.2 多環境配置

在application.yml文件中添加一個配置項:

可使用逗號( , )來激活多個環境

以下我建立了兩個開發配置,一個用來開發的配置(dev)、另外一個用來測試的配置(test),隨後使用總的配置來激活這兩個配置環境。

多環境配置
image-20200809142928925
image-20200809142928925

6.3 引入外部配置文件信息

和傳統的SSM方式同樣,經過@Value的註解去獲取properties/yml文件中的內容。

若是在yml文件中須要編寫大量的自定義配置,而且具備統一的前綴時,採用以下方式

// Java程序
@ConfigurationProperties(prefix = "aliyun")
@Component
@Data
public class AliyunProperties {

   private String name;
   private Integer age;
}

// 配置文件
aliyun:
  name: Ziph
  age: 18

6.3 從新構建工程

build
image-20200809143338884
image-20200809143338884

6.4 Springboot熱部署

在作SSM項目時,咱們會用到IDEA插件JRebel熱部署神器來方便開發。由於熱部署很受你們愛戴,因此Springboot也提供了熱部署功能。以下:

導入依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>
IDEASetting相關配置
image-20200809171517524
image-20200809171517524
Springboot啓動項設置
image-20200809171648412
image-20200809171648412

7、Springboot建立web目錄

static文件夾是存儲靜態資源的,而咱們的動態資源仍是須要web目錄結構存儲的,因而咱們建立一個web目錄結構!

導入JSP以及JSTL核心依賴

<!--JSP核心引擎依賴-->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--JSTL-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
建立webapp以及WEB-INF等web目錄結構
image-20200809172236167
image-20200809172236167
添加web.xml
image-20200809172408724
image-20200809172408724
image-20200809172554940
image-20200809172554940
展現web目錄結構
image-20200809172758250
image-20200809172758250
相關文章
相關標籤/搜索