1. 程式人生 > 其它 >Springboot筆記<1>版本控制器與場景啟動器

Springboot筆記<1>版本控制器與場景啟動器

springboot版本控制器

SpringBoot應用的pom.xml中引入了一個父專案parent:spring-boot-starter-parent,spring-boot-starter-parent的父專案為spring-boot-dependenciesspring-boot-dependencies相當於SpringBoot的版本仲裁中心,其中有個properties標籤指定了一些依賴的版本:解決了一些版本衝突的問題,有了它我們在匯入依賴時預設不需要寫版本號,但是沒有在此處宣告版本號的依賴依然需要寫明版本。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.1</version>
    <relativePath/> 
</parent>


<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-dependencies</artifactId>
  <version>2.6.1</version>
</parent>


<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.1</version>
<packaging>pom</packaging>

properties標籤:

<properties>
  <activemq.version>5.16.3</activemq.version>
  <antlr2.version>2.7.7</antlr2.version>
  <appengine-sdk.version>1.9.92</appengine-sdk.version>
  <artemis.version>2.19.0</artemis.version>
  <aspectj.version>1.9.7</aspectj.version>
  <assertj.version>3.21.0</assertj.version>
  <atomikos.version>4.0.6</atomikos.version>
  <awaitility.version>4.1.1</awaitility.version>
  <build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
  <byte-buddy.version>1.11.22</byte-buddy.version>
  <caffeine.version>2.9.2</caffeine.version>
  etc……
  <properties>

版本仲裁:

1、引入依賴預設都可以不寫版本
2、引入非版本仲裁的jar,要寫版本號。

修改預設版本號:

檢視spring-boot-dependencies裡面規定當前依賴的版本用的 key。

1、引入依賴時直接寫上版本號

2、在當前專案裡面重寫配置

    <properties>
        <mysql.version>5.1.43</mysql.version>
    </properties>

這兩種方法其實都是利用maven提供的特性,就近優先原則,就是在當前專案中已經配置了某個依賴的版本號我就使用其版本號,如果當前專案中沒有配置其版本號,我就去其父專案中找其版本號。

版本依賴關係

  • ctrl + shift + alt + U:以圖的方式顯示專案中依賴之間的關係。

springboot場景啟動器

spring-boot-starter場景啟動器:

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <version>2.6.1</version>
      <scope>compile</scope>
   </dependency>

springboot的各種各樣的 starters,有官方提供的,也有第三方開源出來。starter是springBoot的一個重要部分。通過starter,我們能夠快速的引入一個功能,而無需額外的配置。同時starter一般還會給我提供預留的自定配置選項,我們只需要在application.properties中設定相關引數,就可以實現配置的個性化。

springboot場景:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter</artifactId>
  <version>2.6.1</version>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-activemq</artifactId>
  <version>2.6.1</version>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
  <version>2.6.1</version>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-amqp</artifactId>
  <version>2.6.1</version>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-aop</artifactId>
  <version>2.6.1</version>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-artemis</artifactId>
  <version>2.6.1</version>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-batch</artifactId>
  <version>2.6.1</version>
</dependency>

自動配置

  • 自動配好Tomcat

    ​ 引入Tomcat依賴,配置Tomcat

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <version>2.3.4.RELEASE</version>
      <scope>compile</scope>
    </dependency>
  • 自動配好SpringMVC

    ​ 引入SpringMVC全套元件,自動配好SpringMVC常用元件(功能)

  • 自動配好Web常見功能,如:字元編碼問題

  • SpringBoot幫我們配置好了所有web開發的常見場景

  • 預設的包結構

    ​ 主程式所在包及其下面的所有子包裡面的元件都會被預設掃描進來,無需以前的包掃描配置想要改變掃描路徑,@SpringBootApplication(scanBasePackages="###.###")或者@ComponentScan 指定掃描路徑

@SpringBootApplication
等同於
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("包路徑")
  • 各種配置擁有預設值

    ​ 預設配置最終都是對映到某個類上,如:MultipartProperties

    ​ 配置檔案的值最終會繫結每個類上,這個類會在容器中建立物件

  • 按需載入所有自動配置項

    ​ 非常多的starter,引入了哪些場景這個場景的自動配置才會開啟,SpringBoot所有的自動配置功能都在 spring-boot-autoconfigure 包裡面

未經作者同意請勿轉載

本文來自部落格園作者:aixueforever,原文連結:https://www.cnblogs.com/aslanvon/p/15715008.html