教你如何使用Springboot注入帶引數的建構函式
這篇文章主要介紹了使用Springboot注入帶引數的建構函式例項,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
|
我們使用@Service註解一個service,預設注入的是不帶參的建構函式,如果我們需要注入帶參的建構函式,怎麼辦?
使用@Configuration+ @Bean註解來實現注入:
@Configuration public class BlockChainServiceConfig { @Bean BlockChainService blockChainService(){ return new BlockChainService(1); } }
service類
public class BlockChainService { private int number; public BlockChainService(int number) { this.number=number; } }
補充知識:Spring Boot - Spring Beans之依賴構造器注入
使用所有Spring Framework技術定義的beans以及他們的依賴注入都是免費的。簡單起見,我們通常使用@CompnentScan查詢beans,結合@Autowired構造注入效果比較好。
如果你的程式碼結構是按之前建議的結構(將應用類放到根包裡),你可以新增@ComponentScan,不需要任何引數。這樣你所有的應用元件(@Component,@Service,@Repository,@Controller等等)都將會註冊為Spring Beans。
看下面的例子,@Service Bean使用構造注入,獲取CacheManager bean。
package com.example.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class DatabaseCacheService implements CacheService { private final CacheManager cacheManager; @Autowired public DatabaseCacheService(CacheManager cacheManager) { this.cacheManager = cacheManager; } // ... }
如果這個bean有一個構造,可以省略@Autowired。
@Service public class DatabaseCacheService implements CacheService { private final CacheManager cacheManager; public DatabaseCacheService(CacheManager cacheManager) { this.cacheManager = cacheManager; } // ... }
注意,使用構造注入允許cacheManager標記為final,這也表示以後不能再被更改了。
以上這篇使用Springboot注入帶引數的建構函式例項就是小編分享給大家的全部內容了,希望能給大家一個參考。
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2691468/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- EXTJS 建構函式帶引數JS函式
- 請Spring如何注入帶有建構函式的物件呢?Spring函式物件
- 預設建構函式、引數化建構函式、複製建構函式、解構函式函式
- 第4周專案1-三角形類的建構函式(1)-使用帶引數建構函式函式
- 從建構函式得到引數型別函式型別
- C++ 類中呼叫基類帶引數建構函式以及常量如何初始化C++函式
- 封裝帶引數的函式封裝函式
- 手把手教你寫DI_2_小白徒手擼建構函式注入函式
- Kotlin 主建構函式引數的修飾符Kotlin函式
- Oracle帶引數的自定義函式Oracle函式
- 函式、引數、解構函式
- javascript關於Array()建構函式引數注意點JavaScript函式
- 第4周專案1-三角形類的建構函式(3)-使用有預設引數的建構函式函式
- Spring基於建構函式和設值函式的依賴注入Spring函式依賴注入
- 函式定義、函式的引數、函式的預設引數函式
- QT的提升,要老命了,建構函式想著加引數!!QT函式
- JavaScript 函式引數解構物件JavaScript函式物件
- python 函式引數的傳遞(引數帶星號的說明)Python函式
- C++ 建構函式實戰指南:預設構造、帶引數構造、複製構造與移動構造C++函式
- 類的建構函式和解構函式函式
- 同名函式的 帶 params 引數 與 不帶 params 引數的執行優先順序函式
- 使用bind()函式的產生的函式用作建構函式this的指向函式
- js Date()建構函式引數需要注意一個問題JS函式
- 淺談 SAP UI5 OData 模型建構函式的輸入引數UI模型函式
- SAP UI5 Page 控制元件的建構函式引數講解UI控制元件函式
- 函式引數 引數定義函式型別函式型別
- 函式解構引數小細節函式
- JavaScript函式引數解構賦值JavaScript函式賦值
- 反射如何獲取函式的引數名反射函式
- 【函式引數】Oracle 11g中使用“=>”顯式指明函式引數名與引數值的對應關係函式Oracle
- 建構函式與解構函式函式
- ## 建構函式函式
- 建構函式函式
- Unity容器建構函式引數迴圈引用問題及解決Unity函式
- SAP UI5 sap.ui.base.ManagedObject 的建構函式引數講解UIObject函式
- Java的建構函式Java函式
- 建構函式的作用函式
- [譯] 建構函式已死,建構函式萬歲!函式