日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

SpringBoot的自動裝配,你學會了嗎?

來源: 責編: 時間:2024-05-29 08:54:19 192觀看
導讀我們今天再來說一下關于 SpringBoot 的自動裝配,為什么會有這樣的問題呢?一般這種情況都是在面試的過程中,面試官有時候會問到這個問題,就比如從開始問SpringBoot 的一些常用注解,到SpringBoot的一些特性,然后引申到這個 Sp

我們今天再來說一下關于 SpringBoot 的自動裝配,為什么會有這樣的問題呢?一般這種情況都是在面試的過程中,面試官有時候會問到這個問題,就比如從開始問SpringBoot 的一些常用注解,到SpringBoot的一些特性,然后引申到這個 SpringBoot 的自動裝配上來。今天就和了不起一起來聊聊關于這個 SpringBoot 的自動裝配吧。tgl28資訊網——每日最新資訊28at.com

什么是SpringBoot的裝配

Spring Boot 的自動裝配(Auto-Configuration)是指 Spring Boot 會根據項目中添加的依賴和其他因素,自動配置你的 Spring 應用程序。這一特性使得開發者在創建 Spring 應用程序時,可以省去大量的手動配置工作,從而快速啟動和運行應用程序。tgl28資訊網——每日最新資訊28at.com

自動裝配流程

SpringBoot的自動裝配工作流程主要基于其核心注解和一系列的配置機制,以下是對其工作流程的詳細解析:tgl28資訊網——每日最新資訊28at.com

1.啟動注解:

  • SpringBoot的自動裝配始于@SpringBootApplication注解。這個注解實際上是@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan三個注解的組合。

2.@SpringBootConfiguration:

  • @SpringBootConfiguration注解本質上是一個@Configuration注解的包裝,用于聲明當前類是一個配置類,可以定義Bean,也可以引入其他配置類。

3.@EnableAutoConfiguration:

  • 這是實現自動裝配的關鍵注解。它包含了@AutoConfigurationPackage和@Import(AutoConfigurationImportSelector.class)兩個子注解。
  • @AutoConfigurationPackage:用于自動配置包,使得主配置類(帶有@SpringBootApplication注解的類)所在的包及其子包中的組件都能被Spring容器掃描到。
  • @Import(AutoConfigurationImportSelector.class):這個注解的作用是導入類,但在這里它并不是直接導入一個普通的類,而是導入了一個實現了ImportSelector接口的類AutoConfigurationImportSelector。這個類的作用是根據一定的規則(比如類路徑下的META-INF/spring.factories文件)來加載并配置一些自動裝配的類。

4.META-INF/spring.factories:

  • 在Spring Boot的自動裝配過程中,META-INF/spring.factories文件起到了非常關鍵的作用。這個文件是Spring Boot用來加載自動配置類的一個約定俗成的文件,它位于各個Spring Boot Starter的jar包中。Spring Boot在啟動時,會掃描所有jar包中的META-INF/spring.factories文件,并將其中配置的自動配置類加載到Spring容器中。

5.自動配置類:

  • 這些類通常是以AutoConfiguration結尾的,它們使用@Configuration注解標注,并且內部定義了一些Bean。這些Bean就是Spring Boot自動裝配到Spring容器中的組件。

6.條件裝配:

  • 在自動配置類中,經常可以看到@ConditionalOnClass、@ConditionalOnProperty等條件注解。這些注解的作用是判斷當前環境是否滿足某個條件,如果滿足則進行自動裝配,否則不進行裝配。這樣可以根據項目的實際情況來靈活地選擇需要裝配的組件。

7.總結:

SpringBoot的自動裝配工作流程大致可以歸納為:首先通過@SpringBootApplication注解啟動Spring Boot應用,然后利用@EnableAutoConfiguration注解中的@Import(AutoConfigurationImportSelector.class)來加載META-INF/spring.factories文件中配置的自動配置類,最后根據這些自動配置類中的定義和條件注解來將相應的組件裝配到Spring容器中。tgl28資訊網——每日最新資訊28at.com

自動裝配的核心

@SpringBootApplication

這個注解,就是自動裝配的核心,我們來詳細解讀一下這個 @SpringBootApplicationtgl28資訊網——每日最新資訊28at.com

它其實是一個組合注解,用于簡化 Spring Boot 應用的配置。這個注解通常被用在 Spring Boot 的主類上,以指示該類是一個特殊的配置類,用于引導應用上下文的啟動。tgl28資訊網——每日最新資訊28at.com

組成部分

1.@SpringBootConfiguration:

  • 這是一個特殊的 @Configuration 注解,表示該類是一個配置類,并告訴 Spring Boot 這是一個特殊的配置類,用于加載應用的上下文設置。
  • 實際上,@SpringBootConfiguration 僅僅是 @Configuration 的一個特殊版本,并且二者在功能上沒有區別。但 @SpringBootConfiguration 更多地用于標識這是一個 Spring Boot 應用。

2.@EnableAutoConfiguration:

  • 這是 Spring Boot 的核心特性之一。它告訴 Spring Boot 根據添加的 jar 依賴項、類路徑設置、各種屬性設置等自動配置你的 Spring 應用。例如,如果你的類路徑下有 spring-boot-starter-web,那么 Spring Boot 會自動配置嵌入式 Tomcat 服務器和 Spring MVC。
  • 你可以通過 spring.autoconfigure.exclude 屬性來排除某些自動配置。

3.@ComponentScan:

  • @ComponentScan 告訴 Spring 掃描當前包及其子包下的組件(如 @Component、@Service、@Repository、@Controller 等),并將它們注冊為 Spring Bean。
  • 默認情況下,它會掃描標注了 @SpringBootApplication 注解的類所在的包及其子包。你可以通過 basePackages 或 basePackageClasses 屬性來指定掃描的包。

如果這個時候,我們給面試官解釋了這個 SpringBoot的自動裝配的原理之后,面試官很大程度上就開始要往下延伸內容了,既然 @Autowired 能實現了則個自動裝配,那么還有其他注解么?以及他和 @Autowired 的區別在哪呢?tgl28資訊網——每日最新資訊28at.com

@Resource和@Autowire

@Resource 和 @Autowired 都是 Spring 框架中用于自動裝配 bean 的注解,但它們之間有一些區別。以下是這兩個注解的主要區別:tgl28資訊網——每日最新資訊28at.com

來源不同

@Autowired 是 Spring 特有的注解,用于自動裝配 bean。tgl28資訊網——每日最新資訊28at.com

@Resource 是 Java 的標準注解,屬于 JSR-250 規范的一部分,但 Spring 也支持它作為自動裝配的注解。tgl28資訊網——每日最新資訊28at.com

@Autowired

@Autowired 是 Spring 特有的注解,用于自動裝配 bean。Spring 容器會檢查 bean 的屬性、方法以及構造器,然后使用與指定類型相匹配的 bean 進行自動裝配。tgl28資訊網——每日最新資訊28at.com

  • 類型匹配:默認情況下,@Autowired 是基于類型(Type)的自動裝配。如果存在多個相同類型的 bean,那么就需要使用其他機制(如 @Qualifier 注解或 @Primary 注解)來進一步指定。
  • 構造器注入:Spring 4.3 之后,推薦使用構造器注入來替代字段注入,因為它可以提供更好的不可變性和測試性。
  • 可配置性:@Autowired 是可選的,并且可以通過 Spring 的配置文件(如 XML 文件)進行更詳細的配置。

@Resource

@Resource 是 Java EE 的一部分(來自 JSR-250),同時也是 Spring 支持的注解。它提供了更豐富的功能,包括指定名稱(name)和類型(type)來查找 bean。tgl28資訊網——每日最新資訊28at.com

  • 名稱和類型匹配:與 @Autowired 相比,@Resource 提供了更靈活的匹配方式。它可以基于名稱(如果提供了)或類型進行查找。如果同時指定了名稱和類型,并且找不到匹配的 bean,那么就會拋出異常。
  • 與 Java EE 兼容:由于 @Resource 是 Java EE 的一部分,因此它可以在任何支持 Java EE 的環境中使用,而不僅僅是 Spring。

到這里,本篇文章就接近尾聲了,關于 SpringBoot的自動裝配,你掌握了多少呢?tgl28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-91355-0.htmlSpringBoot的自動裝配,你學會了嗎?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 深入Go原理:協程間通信基礎Chan

下一篇: 一日一技:如何正確處理多行字符串的縮進問題

標簽:
  • 熱門焦點
  • K60至尊版狂暴引擎2.0加持:超177萬跑分斬獲性能第一

    Redmi的后性能時代戰略發布會今天下午如期舉辦,在本次發布會上,Redmi公布了多項關于和聯發科的深度合作,以及新機K60 Ultra在軟件和硬件方面的特性,例如:“K60 至尊版,雙芯旗艦
  • 小米官宣:2023年上半年出貨量中國第一!

    今日早間,小米電視官方微博帶來消息,稱2023年小米電視上半年出貨量達到了中國第一,同時還表示小米電視的巨屏風暴即將開始。“公布一個好消息2023年#小米電視上半年出貨量中國
  • 7月安卓手機性能榜:紅魔8S Pro再奪榜首

    7月份的手機市場風平浪靜,除了紅魔和努比亞帶來了兩款搭載驍龍8Gen2領先版處理器的新機之外,別的也想不到有什么新品了,這也正常,通常6月7月都是手機廠商修整的時間,進入8月份之
  • SpringBoot中使用Cache提升接口性能詳解

    環境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應用程序提供了透明式添加緩存的支持。和事務支持一樣,抽象緩存允許一致地使用各
  • 學習JavaScript的10個理由...

    作者 | Simplilearn編譯 | 王瑞平當你決心學習一門語言的時候,很難選擇到底應該學習哪一門,常用的語言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對帶有指定屬性的 HTML 元素設置樣式。可以為擁有指定屬性的 HTML 元素設置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡單而
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 了不起:那你最近學習的什么呢? 了不起學弟:最近在學習C
  • 郭明錤稱華為和江淮汽車合作開發問界MPV,定價100萬左右、計劃明年量產

    8 月 1 日消息,郭明錤今天在 Medium 平臺發布博文,稱華為正在和江淮汽車合作,開發售價在 100 萬元的問界 MPV,預計在 2024 年第 2 季度量產,銷量目標為
  • 自研Exynos回歸!三星Galaxy S24系列將提供Exynos和驍龍雙版本

    年初,全新的三星Galaxy S23系列發布,包含Galaxy S23、Galaxy S23+和Galaxy S23 Ultra三個版本,全系搭載超頻版驍龍8 Gen 2,雖同樣采用臺積電4nm工藝制
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
欧美精品一区二区三| 久久精品99久久香蕉国产色戒| 在线精品在线| 最新国产成人在线观看| 亚洲免费观看在线观看| 国产精品99久久99久久久二8 | 欧美精品七区| 欧美性大战久久久久久久| 国产精品永久| 亚洲国产精品久久精品怡红院| 亚洲精品视频在线观看网站| 亚洲午夜一二三区视频| 久久精品二区三区| 欧美伦理在线观看| 国产日韩一级二级三级| 91久久国产自产拍夜夜嗨| 亚洲一级一区| 久久这里有精品15一区二区三区| 欧美日本韩国| 国产一区二区三区高清| 亚洲另类在线视频| 欧美一区二区三区在| 欧美xart系列高清| 国产精品视频一二| 最新亚洲视频| 先锋影音国产一区| 欧美国产激情| 国产一区二区三区的电影 | 亚洲精品一区在线观看香蕉| 午夜精品亚洲| 欧美精品在线一区| 狠狠色综合色区| 亚洲一品av免费观看| 毛片精品免费在线观看| 国产精品色婷婷| 亚洲人体1000| 久久精品三级| 国产精品久久福利| 亚洲欧洲一区二区在线观看| 久久精品2019中文字幕| 欧美三级在线| 亚洲人人精品| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品www色诱视频| 亚洲韩日在线| 久久免费视频在线观看| 国产精品亚洲а∨天堂免在线| 亚洲精品五月天| 久久人91精品久久久久久不卡| 国产精品人成在线观看免费| 亚洲毛片av在线| 裸体歌舞表演一区二区| 国产拍揄自揄精品视频麻豆| 一区二区三区国产精品| 久久综合中文字幕| 国产日本欧洲亚洲| 亚洲一区二区三区午夜| 欧美日韩国产区| 亚洲人成毛片在线播放| 久热精品在线视频| 国产专区一区| 欧美在线不卡视频| 国产精品久久一卡二卡| 一本色道久久综合亚洲精品不卡 | 99国产精品私拍| 鲁大师成人一区二区三区 | 亚洲免费在线观看| 欧美视频手机在线| 99国产一区| 欧美精品九九99久久| 亚洲电影自拍| 美女脱光内衣内裤视频久久网站| 国产一区二区三区久久| 午夜精品婷婷| 国产美女在线精品免费观看| 亚洲欧美精品一区| 国产精品日本一区二区| 亚洲一区视频在线| 国产精品久久久亚洲一区| 亚洲天天影视| 国产精品黄色在线观看| 亚洲一区二区三区四区中文| 国产精品v欧美精品v日韩精品| 中文在线一区| 国产精品网站在线播放| 小黄鸭精品密入口导航| 国产欧美一区二区精品婷婷| 性欧美大战久久久久久久久| 国产视频观看一区| 久久久久99| 亚洲高清激情| 欧美精品一区三区在线观看| 99av国产精品欲麻豆| 欧美三日本三级少妇三99 | 欧美精品久久久久久| 日韩亚洲欧美综合| 欧美特黄一级| 午夜综合激情| 狠狠色狠狠色综合系列| 美腿丝袜亚洲色图| 日韩一级片网址| 国产精品久久久免费| 性8sex亚洲区入口| 精品av久久707| 欧美激情成人在线| 亚洲视频一区二区在线观看 | 亚洲精品一区二区三区四区高清| 欧美精品在线免费| 亚洲一线二线三线久久久| 国产深夜精品福利| 久久综合网hezyo| 99天天综合性| 国产亚洲精品福利| 蜜臀av国产精品久久久久| 日韩一级黄色av| 国产精品日本一区二区| 久久精品国产96久久久香蕉| 亚洲风情亚aⅴ在线发布| 欧美日韩在线一区二区| 欧美一区二区三区的| 亚洲成色精品| 欧美特黄一级大片| 欧美在线日韩精品| 亚洲高清中文字幕| 欧美人与性动交cc0o| 午夜精品视频在线观看| 激情欧美日韩| 欧美色123| 久久久亚洲影院你懂的| 99在线精品视频在线观看| 国产精品一区二区三区观看 | 国产九区一区在线| 欧美高清影院| 亚洲欧美日韩电影| 在线免费日韩片| 国产精品h在线观看| 久久漫画官网| 亚洲一二三四久久| 亚洲高清在线播放| 国产精品xnxxcom| 免费看成人av| 午夜日韩av| 亚洲精品社区| 国产亚洲精品自拍| 欧美日韩亚洲视频| 久久人人九九| 亚洲图中文字幕| 亚洲国产精品久久久久婷婷老年 | 在线观看欧美日韩| 国产精品婷婷| 欧美男人的天堂| 久久久人成影片一区二区三区观看 | 欧美色图麻豆| 欧美成人午夜激情| 欧美主播一区二区三区| 99精品国产福利在线观看免费| 韩国av一区二区三区| 国产精品福利网站| 欧美风情在线观看| 先锋影音国产精品| 在线中文字幕一区| 亚洲精品乱码久久久久久黑人| 国产亚洲午夜| 国产精品久久午夜夜伦鲁鲁| 欧美欧美天天天天操| 裸体丰满少妇做受久久99精品 | 欧美成人第一页| 久久久久青草大香线综合精品| 亚洲自拍偷拍色片视频| 亚洲免费大片| 亚洲国产一区在线观看| 国产一区二区日韩精品欧美精品| 国产精品黄视频| 欧美日本国产一区| 欧美成人高清视频| 久久久久久久久久看片| 午夜精品久久久久久久99热浪潮 | 亚洲欧洲一区二区三区久久| 激情丁香综合| 国产一区二区精品丝袜| 国产精品亚洲一区| 国产精品红桃| 欧美午夜女人视频在线| 欧美大片91| 模特精品在线| 快射av在线播放一区| 久久黄金**| 久久久精品国产免费观看同学| 欧美一级夜夜爽| 欧美一级大片在线免费观看| 亚洲私人黄色宅男| 国产精品99久久不卡二区| 一区二区精品| 一本色道88久久加勒比精品| 亚洲美女av网站| 亚洲黄色成人| 91久久亚洲| 亚洲精品视频在线看| 亚洲日韩成人| 99re6这里只有精品| 一个人看的www久久| 中文网丁香综合网| 亚洲免费在线观看| 欧美一级专区|