創建第一個SpringBoot應用

第一步:創建一個maven項目,如下。

第二步:繼承SpringBoot工程。引入核心依賴。

<!-- 指定一些默認屬性 -->
  <properties>
  	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
	<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
	<java.version>1.8</java.version>
  </properties>
  
  <parent>
  	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<!-- 選用穩定、夠新的版本即可 -->
	<version>2.1.0.RELEASE</version>
	<relativePath />
  </parent>
  
  <dependencies>
  	<!-- web模塊包 引入之後就可以直接進行web服務開發.裏面包含了tomcat、spring和springMVC等 -->
  	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
  </dependencies>

可以嘗試註釋掉"spring-boot-starter-web"依賴,可以發現無法使用任何spring或者springMVC的類或註解。即可以證明"spring-boot-starter-web"的作用。也可證明,springboot不是一個新的框架,只是將其他框架的功能整合在一起,爲我們提供一個"開箱即用"的環境。

第三步:編寫配置文件及啓動項目入口

springboot遵循"約定優先配置"的原則,使用springboot只需很少的配置,大部分的時候直接使用默認配置即可(並不是沒有配置)。

1、加載默認的配置文件。在/src/main/resource/路徑下,創建一個application.properties文件。如下:

# 默認加載8080
server.port=9999

說明:除了xxx.properties文件格式,還支持xxx.yml文件格式。配置也不僅僅只有server.port這一項。

2、在任意包路徑下創建一個啓動類(類名任意),如下

@SpringBootApplication
public class App {

	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}

至此,就可以啓動一個springboot項目了。接着就可以直接在項目中寫熟悉的controller、service、mapper等。

注意:其他組件,比如controller層、service層、dao層、配置層等使用到spring功能的類,一定要屬於啓動類App.class所在包或其子包。因爲啓動類默認掃描裝配的是其所在的包及子包,否則需要在啓動註解@SpringBootApplication上指定掃描的包,spring才能將其裝配。包結構示例如下:

指定掃描其他路徑示例如下:

@SpringBootApplication(scanBasePackages = {"com.zepal","其它"})
// 如果在@SpringBootApplication上指定了掃描路徑,則不用單獨使用@ComponentScan指定了
// @SpringBootApplication是一個組合註解,包含了@ComponentScan
// 功能和spring中的<context:component-scan>標籤功能相同
// basePackages屬性是數組值,支持通配符
// @ComponentScan(basePackages = "com.zepal")

加載其他路徑的配置文件

上述方式使用的是默認加載/src/main/resource/路徑下配置文件。除此之外,springboot還可以指定加載其他路徑的配置文件。

將springboot打包成一個可執行的jar包之後。執行啓動命令指定。如下:

// 指定配置文件的路徑是絕對路徑.可任意命名
java -jar xxx.jar --spring.config.location=D:\config\xxx.properties

springboot加載配置文件的方式一共有五種,以下按照優先級排列:

1、啓動可執行jar包指定配置文件,可以自定義命名配置文件;

2、在可執行jar包文件的同目錄下建一個config文件夾,將配置文件放到該文件夾,需要命名爲application.properties(application.yml);

3、直接將配置文件放到jar包的同目錄下,需要命名爲application.properties;

4、在項目的/src/main/resource/路徑下建一個config文件夾,將配置文件放到該目錄下,需要命名爲application.properties(application.yml);

5、在項目的/src/main/resource/路徑下,直接創建一個配置文件,需要命名爲application.properties(application.yml),即上述方式。

其實爲了減少麻煩,或者說統一所有springboot使用者的習慣,還是建議用第4種或者第5種方式。

創建不同環境的配置文件

在開發應用時,通常有開發環境、測試環境、生產環境等。其中每個環境都有自己的配置信息,比如端口、數據庫連接、MQ連接、redis連接等。如果每次換一個環境就需要改動一次,相對較麻煩還容易出錯。那麼,我們就可以直接創建出不同環境的配置信息,然後在不同的環境中指定相應的配置文件即可。(以下用xxx.properties說明,xxx.yml同樣支持)

多環境的配置文件命名需要滿足,application-{profile}.properties的格式(${profile}對應環境標識)。示例如下:

application-dev.properties:開發環境

application-test.properties:測試環境

application-prod.properties:生產環境

至於具體加載哪一個環境的配置文件,需要在配置文件中通過spring.profiles.active配置項去指定。如下:

# 配置項的值對應配置文件名的{profile}。test、dev、prod
spring.profiles.active=test

上述配置則會加載application-test.properties。此方式是通過application.properties爲主配置文件,去加載了不同環境的差異信息,不然鬼知道該去哪裏加載spring.profiles.active這個屬性。比如:application-dev加載127.0.0.1機器的數據庫,application-test加載127.0.0.2機器的數據庫。那麼通過spring.profiles.active制定不同的配置文件後,就可以加載不同的數據庫連接信息了。

同樣,也可以在打包後,啓動jar時通過spring.profiles.active指定。如下:

java -jar xxx.jar --spring.profiles.active=prod

那麼,就可以加載application-prod.properties文件了,這種方式不需要application.properties爲主文件。

問題來了,這種方式好像和通過"java -jar xxx.jar --spring.config.location=D:\config\xxx.properties"指定任意配置文件,是一樣的功能。畫蛇添足,無解。

 定製自己的啓動圖標(banner),騷

springboot啓動時,原圖標如下:

第一步:創建一個banner.txt文件。並輸入任意信息。比如輸入:hello zepal。

第二步:將banner.txt放入項目的/src/main/resource/路徑下。

啓動之後就可以看到banner.txt中的信息。如下:

當然,還可以定製藝術字體。訪問工具網站:http://patorjk.com/software/taag

重複上述步驟,再啓動應用,效果如下:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------不積跬步無以至千里

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