springboot(1)

Spring Boot 入門(一)之概念及配置

1、什麼是 Spring Boot

​ Spring 誕生時是 Java 企業版(Java Enterprise Edition,JEE,也稱 J2EE)的輕量級代替品。無需開發重量級的 Enterprise JavaBean(EJB),Spring 爲企業級 Java 開發提供了一種相對簡單的方法,通過依賴注入和麪向切面編程,用簡單的 Java 對象(Plain Old Java Object,POJO)實現了 EJB 的功能。

​ 雖然 Spring 的組件代碼是輕量級的,但它的配置卻是重量級的。一開始,Spring 用 XML 配置,而且是很多 XML 配置。Spring2.5 引入了基於註解的組件掃描,這消除了大量針對應用程序自身組件的顯式 XML 配置。Spring 3.0 引入了基於 Java 的配置,這是一種類型安全的可重構配置方式,可以代替 XML。所有這些配置都代表了開發時的損耗。因爲在思考 Spring 特性配置和解決業務問題之間需要進行思維切換,所以寫配置擠佔了寫應用程序邏輯的時間。和所有框架一樣,Spring 實用,但與此同時它要求的回報也不少。

​ 除此之外,項目的依賴管理也是件吃力不討好的事情。決定項目裏要用哪些庫就已經夠讓人頭痛的了,你還要知道這些庫的哪個版本和其他庫不會有衝突,這難題實在太棘手。並且,依賴管理也是一種損耗,添加依賴不是寫應用程序代碼。一旦選錯了依賴的版本,隨之而來的不兼容問題毫無疑問會是生產力殺手。

Spring Boot 讓這一切成爲了過去。

​ Spring Boot 是 Spring 社區較新的一個項目。該項目的目的是幫助開發者更容易的創建基於 Spring 的應用程序和服務,讓更多人的人更快的對 Spring 進行入門體驗,爲 Spring 生態系統提供了一種固定的、約定優於配置風格的框架。

2、Spring Boot 具有如下特性:

(1) 爲基於 Spring 的開發提供更快的入門體驗

(2) 開箱即用,沒有代碼生成,也無需 XML 配置。同時也可以修改默認值來滿足特定的需求。

(3) 提供了一些大型項目中常見的非功能性特性,如嵌入式服務器、安全、指標,健康檢測、外部配置等。

(4) Spring Boot 並不是不對功能上的增強,而是提供了一種快速使用的方式。

3、入門小demo

3.1 引入pom文件中的起步依賴

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
	<version>1.4.0.RELEASE</version> 
</parent>   

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

  <properties>    
    <java.version>1.7</java.version> 
  </properties>


利用依賴,引入的spring-boot-starter-web ,spring-boot-starter-web 後會自動把所需的依賴傳遞過來,並且版本一致。配置JDK版本也比較容易。

3.2 引導類的創建

package cmst.cug.springBoot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * <p>Title:ShoppingMarket02 \\ cmst.cug.springBoot</p></p>
 * <p>Description: </p>
 * @Author: Xiaochun Li</p>  @date 2019/9/15 9:43
 * @Telephone: +86 13260635718; @Mail: [email protected]
 */
@SpringBootApplication
public class Application {
    //默認掃描,application 當前包及其子包的全部類;
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

注意:,@SpringBootApplication 其實就是以下三個註解的總和 :

  1. @Configuration: 用於定義一個配置類

  2. @EnableAutoConfiguration :Spring Boot 會自動根據你 jar 包的依賴來自動配置項目。

  3. @ComponentScan: 告訴 Spring 哪個 packages 的用註解標識的類 會被 spring 自動掃描並且裝入 bean 容器。我們直接執行這個引導類,會發現控制檯出現的這個標識

    (這裏自動掃描跟這個引導類相同目錄下的所有文件,並且其子文件)

3.3 使用SpringBoot實現 “Hello World!” 的輸出

package cmst.cug.springBoot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>Title:ShoppingMarket02 \\ cmst.cug.springBoot</p></p>
 * <p>Description: </p>
 * @Author: Xiaochun Li</p>  @date 2019/9/15 9:50
 * @Telephone: +86 13260635718; @Mail: [email protected]
 */
@RestController
public class HelloWorldController {
    
    @RequestMapping("/info")
    public String info() {
        return "helloword!!!!!!!!!";
    }
}

在瀏覽器地址欄輸入 http://localhost:8080/info 即可看到運行結果

[外鏈圖片轉存失敗(img-W9wjI7d6-1568548812949)(C:\Users\19433\Desktop\桌面1文件.png)]

3.4 使用SpringBoot實現 配置文件的讀取

在 src/main/resources 下的 application.properties 增加配置

[外鏈圖片轉存失敗(img-3Xi5JU0r-1568548812950)(C:\Users\19433\AppData\Roaming\Typora\typora-user-images\1568548035125.png)]

設置1:設置Tomcat的端口,設置2:設置屬性;設置3:設置外部的ActiveMQ

[外鏈圖片轉存失敗(img-JzAcqAYf-1568548812950)(C:\Users\19433\AppData\Roaming\Typora\typora-user-images\1568548219462.png)]

更改之後的入門結果:

[外鏈圖片轉存失敗(img-LWfDmsi6-1568548812951)(C:\Users\19433\AppData\Roaming\Typora\typora-user-images\1568548412851.png)]

3.5 熱部署

最後SpringBoot還支持 熱部署:將在各項目的啓動上,節約了大量的時間:

只需在pom 文件中配置即可:

<dependency>   
 	    <groupId>org.springframework.boot</groupId>   
 	    <artifactId>spring-boot-devtools</artifactId>   
</dependency> 
    <groupId>org.springframework.boot</groupId>   
    <artifactId>spring-boot-devtools</artifactId>   
```

springBoot的入門就到這裏了,下一節是SpringBoot與消息中間件的整合,將簡化消息中間的部署和使用# Spring Boot 入門(一)之概念及配置

1、什麼是 Spring Boot

​ Spring 誕生時是 Java 企業版(Java Enterprise Edition,JEE,也稱 J2EE)的輕量級代替品。無需開發重量級的 Enterprise JavaBean(EJB),Spring 爲企業級 Java 開發提供了一種相對簡單的方法,通過依賴注入和麪向切面編程,用簡單的 Java 對象(Plain Old Java Object,POJO)實現了 EJB 的功能。

​ 雖然 Spring 的組件代碼是輕量級的,但它的配置卻是重量級的。一開始,Spring 用 XML 配置,而且是很多 XML 配置。Spring2.5 引入了基於註解的組件掃描,這消除了大量針對應用程序自身組件的顯式 XML 配置。Spring 3.0 引入了基於 Java 的配置,這是一種類型安全的可重構配置方式,可以代替 XML。所有這些配置都代表了開發時的損耗。因爲在思考 Spring 特性配置和解決業務問題之間需要進行思維切換,所以寫配置擠佔了寫應用程序邏輯的時間。和所有框架一樣,Spring 實用,但與此同時它要求的回報也不少。

​ 除此之外,項目的依賴管理也是件吃力不討好的事情。決定項目裏要用哪些庫就已經夠讓人頭痛的了,你還要知道這些庫的哪個版本和其他庫不會有衝突,這難題實在太棘手。並且,依賴管理也是一種損耗,添加依賴不是寫應用程序代碼。一旦選錯了依賴的版本,隨之而來的不兼容問題毫無疑問會是生產力殺手。

Spring Boot 讓這一切成爲了過去。

​ Spring Boot 是 Spring 社區較新的一個項目。該項目的目的是幫助開發者更容易的創建基於 Spring 的應用程序和服務,讓更多人的人更快的對 Spring 進行入門體驗,爲 Spring 生態系統提供了一種固定的、約定優於配置風格的框架。

2、Spring Boot 具有如下特性:

(1) 爲基於 Spring 的開發提供更快的入門體驗

(2) 開箱即用,沒有代碼生成,也無需 XML 配置。同時也可以修改默認值來滿足特定的需求。

(3) 提供了一些大型項目中常見的非功能性特性,如嵌入式服務器、安全、指標,健康檢測、外部配置等。

(4) Spring Boot 並不是不對功能上的增強,而是提供了一種快速使用的方式。

3、入門小demo

3.1 引入pom文件中的起步依賴

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
	<version>1.4.0.RELEASE</version> 
</parent>   

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

  <properties>    
    <java.version>1.7</java.version> 
  </properties>


利用依賴,引入的spring-boot-starter-web ,spring-boot-starter-web 後會自動把所需的依賴傳遞過來,並且版本一致。配置JDK版本也比較容易。

3.2 引導類的創建

package cmst.cug.springBoot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * <p>Title:ShoppingMarket02 \\ cmst.cug.springBoot</p></p>
 * <p>Description: </p>
 * @Author: Xiaochun Li</p>  @date 2019/9/15 9:43
 * @Telephone: +86 13260635718; @Mail: [email protected]
 */
@SpringBootApplication
public class Application {
    //默認掃描,application 當前包及其子包的全部類;
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

注意:,@SpringBootApplication 其實就是以下三個註解的總和 :

  1. @Configuration: 用於定義一個配置類

  2. @EnableAutoConfiguration :Spring Boot 會自動根據你 jar 包的依賴來自動配置項目。

  3. @ComponentScan: 告訴 Spring 哪個 packages 的用註解標識的類 會被 spring 自動掃描並且裝入 bean 容器。我們直接執行這個引導類,會發現控制檯出現的這個標識

    (這裏自動掃描跟這個引導類相同目錄下的所有文件,並且其子文件)

3.3 使用SpringBoot實現 “Hello World!” 的輸出

package cmst.cug.springBoot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>Title:ShoppingMarket02 \\ cmst.cug.springBoot</p></p>
 * <p>Description: </p>
 * @Author: Xiaochun Li</p>  @date 2019/9/15 9:50
 * @Telephone: +86 13260635718; @Mail: [email protected]
 */
@RestController
public class HelloWorldController {
    
    @RequestMapping("/info")
    public String info() {
        return "helloword!!!!!!!!!";
    }
}

在瀏覽器地址欄輸入 http://localhost:8080/info 即可看到運行結果

在這裏插入圖片描述

3.4 使用SpringBoot實現 配置文件的讀取

在 src/main/resources 下的 application.properties 增加配置
在這裏插入圖片描述

設置1:設置Tomcat的端口,設置2:設置屬性;設置3:設置外部的ActiveMQ

[外鏈圖片轉存失敗(img-OLFs2cM8-1568548951806)(C:\Users\19433\Desktop\2.png)]

更改之後的入門結果:

在這裏插入圖片描述

3.5 熱部署

最後SpringBoot還支持 熱部署:將在各項目的啓動上,節約了大量的時間:

只需在pom 文件中配置即可:

<dependency>   
 	    <groupId>org.springframework.boot</groupId>   
 	    <artifactId>spring-boot-devtools</artifactId>   
</dependency> 
    <groupId>org.springframework.boot</groupId>   
    <artifactId>spring-boot-devtools</artifactId>   
```

springBoot的入門就到這裏了,下一節是SpringBoot與消息中間件的整合,將簡化消息中間的部署和使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章