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 其實就是以下三個註解的總和 :
-
@Configuration: 用於定義一個配置類
-
@EnableAutoConfiguration :Spring Boot 會自動根據你 jar 包的依賴來自動配置項目。
-
@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 其實就是以下三個註解的總和 :
-
@Configuration: 用於定義一個配置類
-
@EnableAutoConfiguration :Spring Boot 會自動根據你 jar 包的依賴來自動配置項目。
-
@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
更改之後的入門結果:
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與消息中間件的整合,將簡化消息中間的部署和使用