javascript
学习Spring Boot:(一)入门
微服務
微服務其實是服務化思路的一種最佳實踐方向,遵循SOA(面向服務的架構)的思路,各個企業在服務化治理上面的道路已經走得很遠了,整個軟件交付鏈上各個環節的基礎設施逐漸成熟了,微服務就誕生了。
微服務給我們也帶來了很多挑戰,服務“微”化之后,一個顯著的特征就是服務的數量增多了。如果將軟件開發和交付也作為一種生產模式的看待,那么數量眾多的微服務實際上就類似于傳統生產線上的產品,而在傳統生產模式下,為了能夠高效地生產大量產品,通常采用的就是標準化生產。
學習
Spring Boot只是簡化了spring 全家桶的配置,它使用“習慣優于配置”(Convention Over Configuration 項目中存在大量的配置,此外還內置了一個習慣性的配置,讓你無需手動進行配置)的理念讓你的項目快速運行起來。使用Spring Boot很容易創建一個獨立運行(運行jar,內嵌Servlet容器)、準生產級別的基于Spring框架的項目,使用Spring Boot你可以不用或者只需要很少的Spring配置。
核心
- 自動配置:針對很多Spring應用程序常見的應用功能,Spring Boot能自動提供相關配置。
- 起步依賴:告訴Spring Boot需要什么功能,它就能引入需要的庫。
- 命令行界面:這是Spring Boot的可選特性,借此你只需寫代碼就能完成完整的應用程序,無需傳統項目構建。
- Actuator:讓你能夠深入運行中的Spring Boot應用程序,一探究竟。
入門:搭建一個Spring Boot Web
初始化
我是使用的IDEA,它已經集成了Spring Boot。
選擇file - 新建一個項目,選擇Spring Initializr
注意我選擇的jdk 是1.8 ,推薦使用1.8 ,好像低版本的1.5 、1.6有限制,還有就是現在最新版本1.5.9的Spring Boot還不支持jdk9。
next -》 next
選擇Spring Boot 版本,選擇需要的模塊,我們開始學習就使用默認的Web模塊。
結構
初始化完成后,會生成幾個文件,項目結構:
├── mvnw ├── mvnw.cmd ├── pom.xml └── src├── main│ ├── java│ │ └── com│ │ └── example│ │ └── DemoApplication.java│ └── resources│ ├── application.properties│ ├── static│ └── templates└── test└── java└── com└── example└── demo└── DemoApplicationTests.java- pom.xml:Maven構建說明文件。
- *Application:帶有main()方法的類,用于啟動應用程序。
- *ApplicationTests:一個空的Junit測試類,它加載了一個使用Spring Boot字典配置功能的Spring應用程序上下文。
- application.properties:一個空的properties文件,用于配置項目的相關屬性。
- static存放相關靜態文件;
- template 存放模板渲染文件。
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.wuwii</groupId><artifactId>learn-spring-boot</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>learn-spring-boot</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>使用的是Spring Boot父級依賴
,spring-boot-starter-parent是一個特殊的starter,它用來提供相關的Maven默認依賴,使用它之后,常用的包依賴可以省去version標簽。
起步依賴 spring-boot-starter-xx
Spring Boot提供了很多”開箱即用“的依賴模塊,都是以spring-boot-starter-xx作為命名的。舉個例子來說明一下這個起步依賴的好處,比如組裝臺式機和品牌機,自己組裝的話需要自己去選擇不同的零件,最后還要組裝起來,期間有可能會遇到零件不匹配的問題。耗時又消力,而品牌機就好一點,買來就能直接用的,后續想換零件也是可以的。相比較之下,后者帶來的效果更好點(這里就不討論價格問題哈),起步依賴就像這里的品牌機,自動給你封裝好了你想要實現的功能的依賴。就比如我們之前要實現web功能,引入了spring-boot-starter-web這個起步依賴。
起步依賴本質上是一個Maven項目對象模型(Project Object Model,POM),定義了對其他庫的傳遞依賴,這些東西加在一起即支持某項功能。很多起步依賴的命名都暗示了它們提供的某種或者某類功能。
Spring Boot Maven插件
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins> </build>- 把項目打包成一個可執行的超級JAR(uber-JAR),包括把應用程序的所有依賴打入JAR文件內,并為JAR添加一個描述文件,其中的內容能讓你用java -jar來運行應用程序。
- 搜索public static void main()方法來標記為可運行類。
運行
現在添加一個接口,來啟動項目運行:
package com.wuwii.learnspringboot;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;@RestController @SpringBootApplication public class LearnSpringBootApplication {@RequestMapping("/")public String index() {return "Hello World";}public static void main(String[] args) {SpringApplication.run(LearnSpringBootApplication.class, args);} }啟動方式
- @SpringBootApplication是Sprnig Boot項目的核心注解,主要目的是開啟自動配置。后續講解原理的時候再深入介紹。main方法這是一個標準的Java應用的main的方法,主要作用是作為項目啟動的入口,直接運行它的main() 函數。
- 使用命令 mvn spring-boot:run”在命令行啟動該應用,IDEA中該命令在如下位置:
- 運行“mvn package”進行打包時,會打包成一個可以直接運行的 JAR 文件,使用“java -jar”命令就可以直接運行。
總結
- 了解Spring Boot 的基本結構和相關屬性的概念;
- 啟動和運行方式。
總結
以上是生活随笔為你收集整理的学习Spring Boot:(一)入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: enum与int、String之间的转换
- 下一篇: 第四范式荣获“工业和信息化系统抗击新冠肺