【SpringBoot 2】(四)詳析SpringBoot的常用注解

🛫更多知識總結見SpringBoot 2專欄

?🚕本篇知識點總結自尚硅谷雷神的視頻

🚒博主對于該知識尚在學習階段

🚄如果發現存在問題請毫不吝嗇的指出

🚀🚀扎哇太棗糕的博客首頁🚀🚀

1e3dd569c1e4419ca9e134fe872da84c.gif

目錄

向容器注冊組件@Bean

注冊組件的@Component

條件裝配@Conditional

導入配置文件@ImportResource

添加指定類的組件到容器@Import

配置綁定@ConfigrationProperties


向容器注冊組件@Bean

????????在Spring中向容器中注冊一個Bean使用的是applicationContext.xml配置文件中的bean標簽,但是SpringBoot中使用的是MyConfig配置類中方法加@Bean注解。這兩種方式得到的結果是一樣的,只不過是兩種不同的編碼風格而已。

????????單純的寫代碼還不行,要想辦法讓容器知道你想要注冊Bean,Spring使用的方法是在web.xml中聲明applicationContext.xml配置文件使其中的配置生效,SpringBoot使用的是@Configuration注解向容器中注冊,因為配置類其本身而言也是一個組件。

🚩配置類中使用的注解
@Configuration:向SpringBoot聲明這是一個配置類,相當于web.xml里的配置文件聲明
@Bean:向容器注冊注解下面方法返回值對應的對象,相當于bean標簽。@Bean注解還可以使用參數給對象命名,相當于bean標簽中的id屬性。默認命名為注解下面的方法名

🚩獲取指定的組件

? ? ? ? run.getBean()方法

🚩容器中對象創建模式
? ? ? ? 默認為單例模式,也就是在容器中創建好所有的對象,當外部需要獲取對象的時候跳過創建步驟直接去容器中拿即可,所以說無論外部調用多少次組件注冊方法獲取的都是同一個對象。

????????當然還可以修改屬性proxyBeanMethods(Bean方法代理模式)的值進行單例多例的切換,屬性值的改變導致SpringBoot底層擁有兩種配置模式:

  • Full(全配置):proxyBeanMethods為true,單例,判斷容器中有沒有該對象,有則直接取無則創建
  • Lite(輕量配置):proxyBeanMethods為false,多例,對象直接創建。相較于全配置的先判斷再創建或者獲取,Lite直接創建節省了時間,所以被稱為是輕量級配置。

????????如果存在組件依賴的問題的話,必須采用全配置。所謂的組件依賴就是說在容器中一個組件中的屬性是另一個組件或者說使用到了另一個組件,此時就稱這個組件依賴于另一個組件。如果采用輕量配置的話,這個組件中的屬性將不是另一個組件對象,雖然對象名稱都一樣但是地址不同。

注冊組件的@Component

@Component:每一層都通用的注解,用于注冊組件到容器中,相當于bean標簽。缺點就是辨識度不高,無法通過注解理清楚這是哪一層的業務

@Controller:controller層的作用相當于@Component注解

@Service:service層實現類的作用相當于@Component注解

@Repository:mapper層實現類的作用相當于@Component注解

條件裝配@Conditional

@Conditional:滿足條件就向容器中注冊組件

案例一@ConditionalOnBean:容器中的組件之間存在組件依賴,當被依賴的組件不存在的時候,不向容器中添加另一個組件

?? 如果將這個注解放在類上的話, 即是滿足條件時類中的所有方法才能生效,否則都不生效。

????并且在類中的組件注冊也是順序的,使用條件裝配注解時會因為注冊寫在后面就被判斷為不滿足條件

案例二@ConditionalOnMissingBean:沒有組件時進行裝配

導入配置文件@ImportResource

@ImportResource

添加指定類的組件到容器@Import

@Import:調用類中的無參構造器創建一個對象作為組件添加到容器中,組件的默認名為類的全限名

配置綁定@ConfigrationProperties

@ConfigrationProperties:將實體類與配置文件的配置項相綁定,直接給實體類中的屬性注入數據。prefix屬性是指定配置文件里引用屬性的前綴,且@ConfigrationProperties必須配合@Component注解使用才能讓容器知道有這么一個綁定規則

?如果@ConfigrationProperties不配合@Component注解使用的話,還可以在配置類上使用@EnableConfigurationProperties讓容器知道有這么一個綁定規則,屬性為實體類的class文件

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535110.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535110.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535110.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

蘋果7手機嚴重卡頓_蘋果手機僅配備4GB運存都不會卡頓,安卓系統為何要更多內存?...

原標題:蘋果手機僅配備4GB運存都不會卡頓,安卓系統為何要更多內存?眾所周知,安卓系統歷經十余年的發展,目前最低的運行需求是8GB內存,如果是旗艦機的話還要標配12GB或更高。但是前幾天剛發布的iPhone12&…

python調用窗口找到文件,使用Python在Mac OS X中查找當前活動窗口

Is there a way to find the application name of the current active window at a given time on Mac OS X using Python?解決方案This should work:#!/usr/bin/pythonfrom AppKit import NSWorkspaceactiveAppName NSWorkspace.sharedWorkspace().activeApplication()[NSAp…

IntelliJ IDEA自動生成自定義的類注釋和方法注釋

目錄 自定義的類注釋 自定義方法注釋 實現效果:不用手寫即可自動生成如下圖的類上注釋和方法上的注釋,我們只需要填寫方法注釋的參數和返回值文字描述即可,大大節省了代碼開發的時間提高代碼開發效率。 🌕 自定義的類注釋 Fil…

violinplot如何看懂_一張圖告訴你如何看懂個股大趨勢

昨日在T0交易利好消息的影響下,券商股全線大幅高開,帶動三大指數高開走高,科技題材股全線活躍,兩市量能明顯放大,形成量價齊升的良性態勢,上證沖上2917,收在2915,創業板大漲3%以上&a…

jz指令是什么意思_S7-200 SMART 運動控制指令詳解-電氣阿偉帶小白啟程

大家好,我是工控阿偉,今天又跟大家見面了。學習需要堅持,需要鉆研,做技術亦是如此,厚積才能博發。阿偉寫程序都是自己測試使用過的,需要的可以借鑒,避免走彎路。S7-200 smart 運動控制指令由編程…

【SpringBoot 2】(五)自動配置簡析源碼 開發中小技巧

寫在前面🛫更多知識總結見SpringBoot 2專欄 🚕本篇知識點總結自尚硅谷雷神的視頻 🚒博主對于該知識尚在學習階段 🚄如果發現存在問題請毫不吝嗇的指出 🚀🚀扎哇太棗糕的博客首頁🚀🚀…

jar包導出無法顯示圖片或者音樂_如何制作圖片視頻短片,配上音樂閃耀朋友圈!...

把圖片制作成視頻短片,再配上一首好聽的音樂,發到朋友圈,不僅可以更具創意的分享自己的生活點滴,更能因您的創意獲得一大票的贊哦!看到別人分享自己制作的圖片視頻短片,是不是心癢癢也想做一個呢&#xff1…

【SpringBoot 2】(六)配置文件 web開發相關

寫在前面🛫更多知識總結見SpringBoot 2專欄 🚕本篇知識點總結自尚硅谷雷神的視頻 🚒博主對于該知識尚在學習階段 🚄如果發現存在問題請毫不吝嗇的指出 🚀🚀扎哇太棗糕的博客首頁🚀🚀…

deepl windows_推薦一個為程序員深度開發的翻譯插件DeepL

DeepL深度翻譯器DeepL一個程序員的翻譯神器,可能有人要問,市面上這么多的翻譯插件這么多,我為毛要用你的。首先這個翻譯神器可以實現多個翻譯引擎的翻譯,目前支持有道和google,下一步我會把最近特別流行的翻譯軟件Deep…

再次攜號轉網_陜西通信管理局:對移動公司拒絕對用戶提供攜號轉網服務的違法行為處罰!...

據陜西省通信管理局網站11月25日消息,陜西省通信管理局25日發出《關于中國移動西安分公司無正當理由拒絕對用戶提供攜號轉網服務調查處理情況的通報》稱,近期,省通信管理局對中國移動西安分公司(以下簡稱西安移動)無正當理由拒絕對用戶提供攜…

【SpringBoot 2】(七)請求處理——映射 常用注解 方法參數的小技巧

寫在前面🛫更多知識總結見SpringBoot 2專欄 🚕本篇知識點總結自尚硅谷雷神的視頻 🚒博主對于該知識尚在學習階段 🚄如果發現存在問題請毫不吝嗇的指出 🚀🚀扎哇太棗糕的博客首頁🚀🚀…

北方人思想為什么落后_廣西人為什么很少到北方打工?

廣西雖然山青水秀,環境優美,但目前還是個經濟欠發達的地區,很多人在本地很難找到合適的工作,所以紛紛選擇外出打工了,包括我自己。在廣西外出打工的人群當中,絕大部分人都去了廣東,當然&#xf…

刷網絡課_網絡營銷實踐心得—劉薈萌

一、實踐時間2020.9.1~2020.12.25二、實踐內容1、實踐資源準備:實踐平臺賬號注冊、了解相關網站的使用方法。2、認識網絡營銷系統:企業網絡營銷信息源類別及傳遞渠道調查。3、信息源構建:微信公眾號運營、新媒體平臺運營(微博、博客)4、網絡推…

【SpringBoot 2】(八)數據響應 頁面響應

寫在前面🛫更多知識總結見SpringBoot 2專欄 🚕本篇知識點總結自尚硅谷雷神的視頻 🚒博主對于該知識尚在學習階段 🚄如果發現存在問題請毫不吝嗇的指出 🚀🚀扎哇太棗糕的博客首頁🚀🚀…

2020年最快的dns_2020年哪里換旅行證最快取證?需要幾天?

關注我的都知道了很多的實用攻略你還在等什么~美媽不論去哪個地方更換旅行證,都喜歡問“這個地方是否可以加急?”“最快幾天可以拿到新的旅行證?”今天就來整理一下2020年各地換證需要幾天,是否可以加急。"目前更換旅行證有兩…

語句拼接_Linux 進階語句

日常工作需要用到,shell語句用于分析定位生產問題,本次做個記錄# 將日志先拷貝到當前目錄cp /tmp/nginx.log .本次目標是: 找出log中的404 500的報錯#使用管道取出相關日志less nginx.log 通過/ 查詢得知 狀態碼處于第9個字段#使用 awk 篩選出…

【SpringBoot 2】(九)異常處理 web原生組件的注入

寫在前面🛫更多知識總結見SpringBoot 2專欄 🚕本篇知識點總結自尚硅谷雷神的視頻 🚒博主對于該知識尚在學習階段 🚄如果發現存在問題請毫不吝嗇的指出 🚀🚀扎哇太棗糕的博客首頁🚀🚀…

項目管理最佳實踐方法_項目管理最佳實踐,企業如何進行有效的項目管理

前言:企業在劃分項目時,可按照項目的復雜程度、管理范圍等將項目分為三個級別,分別是企業級、部門級和小組級(與目標劃分原則相同),然后將每一級的目標與項目對應起來。我們知道,企業制定的目標…

python 歷遍子彈_python之子彈移動

"""新增功能:完成我方坦克發射子彈的移動"""import pygameimport timeimport randomwin_width 700win_height 500bg_color pygame.Color(0, 0, 0)text_color pygame.Color(255, 0, 0)class MainGame():window Nonemy_tank None…

【SpringBoot 2】(十)數據庫相關

寫在前面🛫更多知識總結見SpringBoot 2專欄 🚕本篇知識點總結自尚硅谷雷神的視頻 🚒博主對于該知識尚在學習階段 🚄如果發現存在問題請毫不吝嗇的指出 🚀🚀扎哇太棗糕的博客首頁🚀🚀…