SpringBoot 學習之Spring篇

2021-08-14 23:27:25 字數 1396 閱讀 7882

scope 描述的是 spring 容器如何新建 bean 的例項的。 spring 的scope 有以下幾種,通過 @scope 註解來實現。

(1)singleton:乙個 spring 容器中只有乙個 bean 的例項,此為 spring的預設配置。

(2)prototype:每次呼叫新建乙個 bean 的例項。

(3)request:web 專案中,給每乙個 httprequest 新建乙個 bean 例項。

(4)session:web 專案中,給每乙個 httpsession 新建乙個 bean 例項。

使用方法 @scope(「prototype」)

開發中使用 @profile 註解類或者方法,達到在不同情況下選擇例項化不同的 bean。

@configuration

public

class

profileconfig

}

**解釋

- 1.profile 為 prod 時例項化 proddemobean。

public

class main

}

**解釋

- 1.先將 profile 設定為prod。

- 2.後置註冊 bean 配置類,不然會報 bean 未定義的錯誤。

- 3.重新整理容器。

@conditional根據滿足某一特定條件建立乙個特定的 bean。比方說,當某乙個 jar 包在乙個類路徑下的時候,自動配置乙個或多個 bean;或者只有某個 bean 被建立才會建立另外乙個 bean。總的來說,就是根據特定條件來控制 bean 的建立行為。

@enableaspectjautoproxy 開啟對 aspectj 自動**的支援。

@enableasync 開啟非同步方法的支援。

@enablescheduling 開啟計畫任務的支援。

@enablewebmvc 開啟 webmvc 的配置支援。

@enableconfigurationproperties 開啟對 @configurationproperties 註解配置 bean 的支援。

@enablejparepositories 開啟對spring data jpa repository 的支援。

@enabletransactionmanagement 開啟註解式事務的支援。

@enablecaching 開啟註解式的快取支援。

通過簡單的@enable*來開啟一項功能的支援,從而避免自己配置大量的**,大大降低使用難度。想要具體了解這個神奇的功能的實現原理還請移步檢視@enable*註解的原始碼。

SP之問 經典

設有兩個自然數x,y,2 x y 99,s先生知道這兩個數的和s,p先生知道這兩個數的積p,他們二人進行了如下對話 s 我確信你不知道這兩個數是多少,但我也不知道。p 一聽你這句話,我就知道這兩個數是什麼了。s 我也是,現在我也知道了。現在你能通過他們的話推斷出這兩個數是多少嗎?當然,s先生和p先生...

springBoot學習之註解小記

controller responsebody restcontroller 當方法或者類上增加了 responsebody註解時,所返回的引數為json格式。當沒有此註解時,引數會以鍵值對的形式傳入。data 提供該類所有屬性的getting和setting方法。cookievalue 用來獲取c...

spring boot學習之熱部署

在pom檔案中加入devtools依賴即可,當classpath下的檔案發生了修改 儲存後 就會自動重啟專案 org.springframework.boot spring boot devtools true 當時我看書上就加了這段配置,然後我立馬啟動專案試了下,毫無疑問,沒有成功 idea中配置...