本文介紹的内容包括:Spring Boot 的 pom檔案、應用入口類、開發測試熱啟動,以及 Spring Boot 的配置檔案。
1、pom 檔案及應用入口類
1、pom 檔案介紹
具體介紹可參見以下的代碼注釋:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- pom模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 配置 Spring Boot 的父級依賴,用來提供相關的 Maven 預設依賴,使用它可以省去常用的包依賴就 version 标簽。-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<!-- <groupId>,<artifactId>與<version>辨別了倉庫中的一個特定位置,叫項目坐标 -->
<!-- groupId是項目組織唯一的辨別符,實際對應java的包的結構 -->
<groupId>com.jpm</groupId>
<!-- ArtifactID就是項目的唯一的辨別符,實際對應項目的名稱,就是項目根目錄的名稱 -->
<artifactId>springbootdemo</artifactId>
<!-- 版本 -->
<version>0.0.1-SNAPSHOT</version>
<!-- 打包方式 (war,jar) -->
<packaging>war</packaging>
<!-- 項目的名稱,Maven産生的文檔用 -->
<name>springbootdemo</name>
<!-- 項目的描述,Maven産生的文檔用 -->
<description>Demo project for Spring Boot</description>
<properties>
<!-- jdK版本 -->
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<!-- 加載web子產品 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 加載tomcat子產品 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<!-- 加載測試子產品 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- 将Spring Boot應用打包為可執行的jar或war檔案,然後以通常的方式運作Spring Boot應用。-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2、應用入口類
Spring Boot 項目通常有一個名為 xxxApplication 的入口類,入口類裡有一個 main 方法, 這個 main 方法其實就是一個标準的 Java 應用的入口方法。
package com.jpm.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootdemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootdemoApplication.class, args);
}
}
@SpringBootApplication 是 Spring Boot 的核心注解,它是一個組合注解,該注解組合了:@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan,@SpringBootApplication 注解也可以使用這三個注解代替。
Spring Boot 會自動掃描 @SpringBootApplication 所在類的同級包以及下級包裡的 Bean ,是以入口類建議就定義在 grounpID + arctifactID 組合的包下(例如:com.jpm.springboot 包)。
@SpringBootConfiguration 與 @Configuration 注解的功能一緻,标注這個類是一個配置類,隻不過@SpringBootConfiguration 是 Spring Boot 的注解,而@Configuration 是 Spring 的注解。@Configuration 注解替代以前的 applicationContext.xml 檔案,完成 spring 容器的初始化。
@EnableAutoConfiguration 開啟自動裝配,讓 Spring Boot 根據類路徑中的 jar 包依賴為目前項目進行自動配置,例如,添加了 spring-boot-starter-web 依賴,會自動添加 Tomcat 和 Spring MVC 的依賴,那麼 Spring Boot 會對 Tomcat 和 Spring MVC 進行自動配置。
@ComponentScan 主要是指定掃描路徑,用于類或接口上,spring 會把指定路徑下帶有指定注解的類自動裝配到bean容器裡。會被自動裝配的注解包括@Controller、@Service、@Component、@Repository 等。其作用相當于<context:component-scan base-package="com.jpm.springboot" /> 配置。
2、Spring Boot 熱啟動
每次寫完代碼,想要代碼生效,總是要重新啟項目,這樣很費時間,熱啟動在項目開發中已經很常見了,而 Spring Boot 對開發調試也有很好的支援,修改代碼之後可以實時生效,隻需在 pom.xml 裡配置以下的代碼:
<!-- springBoot 熱啟動,代碼修改之後可以實時生效,不用重新開機 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
3、Spring Boot 的配置檔案
Spring Boot 提供了兩種常用的配置檔案,分别是 properties 檔案和 yml 檔案。他們的作用都是修改 Spring Boot 自動配置的預設值。
1、properties 檔案
Spring Boot 配置檔案的目錄:src/main/resources/application.properties
properties 檔案的文法結構:key=value
## 配置應用的上下文路徑,也就是項目路徑,是構成url位址的一部分
server.servlet.context-path=/springbootdemo
## 配置端口
server.port=8888
以上的配置表示項目路徑為 /springbootdemo,tomcat 的端口為 8888。
運作程式
輸入 http://localhost:8888/springbootdemo/hello,才能正常通路。
2、yml 檔案
yml 是YAML(YAML Ain't Markup Language)語言的檔案,以資料為中心,在配置資料的時候具有面向對象的特征,更适合做配置檔案,yml 檔案以空格的縮程序度來控制層級關系。空格的個數并不重要,隻要左邊空格對齊則視為同一個層級。注意不能用 tab 代替空格,且大小寫敏感。
Spring Boot 配置檔案的目錄:src/main/resources/application.yml
server:
port: 8889
servlet:
context-path: /springbootdemo-yml
yml 檔案需要在 “:” 後面加一個空格。
以上的配置表示項目路徑為 /springbootdemo-yml,tomcat 的端口為 8889。
運作程式
輸入 http://localhost:8889/springbootdemo-yml/hello,才能正常通路。
下一篇《Spring Boot 開發入門(三)》将為大家進一步介紹 Spring Boot 的入門知識。