AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

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

一篇學會SpringBoot的核心內容之自動裝配

來源: 責編: 時間:2024-04-26 17:35:13 176觀看
導讀不面試不知道,現在面試的問題真的是五花八門的,最近就有讀者說,在面試的過程中,面試官還提到了關于最初版本的 Spring 還有 SpringMVC 以及現在的 SpringBoot 中的一些相關問題,比如他提到了這個 SpringBoot 的自動裝配是

不面試不知道,現在面試的問題真的是五花八門的,最近就有讀者說,在面試的過程中,面試官還提到了關于最初版本的 Spring 還有 SpringMVC 以及現在的 SpringBoot 中的一些相關問題,比如他提到了這個 SpringBoot 的自動裝配是什么,你是怎么理解的,今天了不起就和大家一起來看看這個關于 SpringBoot 的自動裝配。mrT28資訊網——每日最新資訊28at.com

SpringBoot裝配機制

SpringBoot的自動裝配是一種機制,它可以幫助開發者更快地搭建和運行Spring應用。SpringBoot的自動裝配依賴于其提供的starter依賴,這些starter依賴包含了Spring應用所需的大部分配置,使得開發者不需要手動配置這些通用的功能。mrT28資訊網——每日最新資訊28at.com

如果我們這么回答,可能面試官聽到就不是很滿意了,這時候,我們就得抓住要點來進行分析,這樣回答的時候,勢必肯定能抓到重點,畢竟面試的時候,每個人的回答肯定也都是不一樣的。mrT28資訊網——每日最新資訊28at.com

1.約定優于配置mrT28資訊網——每日最新資訊28at.com

2.核心注解mrT28資訊網——每日最新資訊28at.com

3.自動掃描mrT28資訊網——每日最新資訊28at.com

我們來一個一個的解釋這些內容指的到底是什么意思:mrT28資訊網——每日最新資訊28at.com

約定優于配置

SpringBoot的約定優于配置(Convention Over Configuration)主要體現在以下幾個方面:mrT28資訊網——每日最新資訊28at.com

自動配置:SpringBoot根據項目的類路徑下的jar包依賴關系,自動配置相應的Bean。例如,當檢測到HSQLDB數據庫驅動在類路徑下時,它會自動配置一個嵌入式數據庫實例和相關的JPA/Hibernate設置。mrT28資訊網——每日最新資訊28at.com

目錄結構約定:SpringBoot遵循一定的目錄結構約定,使得開發者可以將代碼和資源放在約定的目錄下,而不需要在配置文件中指定。例如,靜態資源默認放在src/main/resources/static或src/main/resources/public目錄下,模板文件默認在src/main/resources/templates下。mrT28資訊網——每日最新資訊28at.com

Starter依賴:SpringBoot提供了一系列的Starter依賴,這些Starter依賴是預定義的依賴集合。通過引入相應的Starter依賴,可以自動引入相關的庫和默認配置,從而簡化了項目的依賴管理。例如,通過引入spring-boot-starter-web依賴,就能夠快速搭建一個基于Spring MVC的Web應用。mrT28資訊網——每日最新資訊28at.com

核心注解EnableAutoConfiguration

EnableAutoConfiguration 是 Spring Boot 的核心注解之一,它告訴 Spring Boot 根據你添加的 jar 依賴項自動配置你的應用程序。Spring Boot 會自動配置許多方面,例如數據源、消息代理、安全設置等,你通常不需要手動設置它們。mrT28資訊網——每日最新資訊28at.com

這個注解的工作原理是基于在項目的類路徑(classpath)中查找特定的 jar 依賴項。一旦找到這些依賴項,Spring Boot 就會自動配置相關的 bean。這減少了大量手動配置和樣板代碼的需求,使開發者能夠專注于他們的應用程序邏輯。mrT28資訊網——每日最新資訊28at.com

@EnableAutoConfiguration 注解通常放在主應用程序類上,這是帶有 main 方法的類,該類使用 SpringApplication.run() 方法啟動 Spring Boot 應用程序。mrT28資訊網——每日最新資訊28at.com

這里是 @EnableAutoConfiguration 注解的基本用法:mrT28資訊網——每日最新資訊28at.com

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.context.annotation.Configuration;@Configuration@EnableAutoConfigurationpublic class MySpringBootApplication {    public static void main(String[] args) {        SpringApplication.run(MySpringBootApplication.class, args);    }}

在這個例子中,@EnableAutoConfiguration 注解啟動了自動配置。Spring Boot 會根據類路徑中的 jar 依賴項來自動配置 bean。mrT28資訊網——每日最新資訊28at.com

那么EnableAutoConfiguration 是如何工作的呢?mrT28資訊網——每日最新資訊28at.com

@EnableAutoConfiguration 注解實際上是一個組合注解,它包含了 @AutoConfigurationPackage 和 @Import(AutoConfigurationImportSelector.class)。mrT28資訊網——每日最新資訊28at.com

@AutoConfigurationPackage 注解確保 @Configuration 類(通常位于主應用程序類中)被考慮在內,以便它可以被自動配置的 beans 使用。@Import(AutoConfigurationImportSelector.class) 注解告訴 Spring Boot 從 META-INF/spring.factories 配置文件中加載 auto-configuration 類。Spring Boot 提供了許多這樣的配置文件,每個文件都針對特定的技術或功能(如數據源、Web MVC 等)。當 Spring Boot 啟動時,它會加載 META-INF/spring.factories 配置文件,并根據你的類路徑中的依賴項選擇適當的自動配置類。然后,這些自動配置類會注冊額外的 beans 到 Spring 的上下文中。mrT28資訊網——每日最新資訊28at.com

如果你不想使用某個特定的自動配置,你可以使用 @EnableAutoConfiguration 注解的 exclude 屬性來排除它。mrT28資訊網——每日最新資訊28at.com

比如我們排除某個特定的自動配置mrT28資訊網——每日最新資訊28at.com

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;import org.springframework.context.annotation.Configuration;@Configuration@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})public class MySpringBootApplication {    public static void main(String[] args) {        SpringApplication.run(MySpringBootApplication.class, args);    }}

總之,@EnableAutoConfiguration 注解是 Spring Boot 的核心特性之一,它簡化了 Spring 應用程序的配置過程,使開發者能夠專注于實現業務邏輯。mrT28資訊網——每日最新資訊28at.com

自動掃描

Spring Boot 的自動掃描是 Spring 框架的一個特性,在 Spring Boot 中得到了進一步的簡化和增強。它允許 Spring Boot 應用程序自動發現和注冊 bean,減少了開發者需要手動配置和聲明 bean 的數量。mrT28資訊網——每日最新資訊28at.com

那自動掃描都做了哪些事情呢?mrT28資訊網——每日最新資訊28at.com

組件掃描:默認情況下,Spring Boot 會掃描啟動類(通常是帶有 @SpringBootApplication 注解的類)所在的包以及其子包下的所有類。它會查找帶有 @Component、@Service、@Repository 和 @Controller 等注解的類,并將它們作為 Spring 容器中的 bean 進行注冊。mrT28資訊網——每日最新資訊28at.com

配置類掃描:除了普通的組件,Spring Boot 還會掃描 @Configuration 注解的類,這些類通常包含 @Bean 方法定義,用于聲明和配置額外的 bean。mrT28資訊網——每日最新資訊28at.com

自動配置類掃描:Spring Boot 還會掃描 META-INF/spring.factories 配置文件,以加載和應用自動配置類。這些自動配置類通常根據類路徑下的庫和依賴項來提供默認的配置。mrT28資訊網——每日最新資訊28at.com

資源掃描:除了組件和配置類,Spring Boot 還會自動掃描靜態資源,如 HTML、CSS、JavaScript 文件以及模板文件(如 Thymeleaf、FreeMarker 等)。這些資源通常放在特定的目錄下,如 src/main/resources/static 或 src/main/resources/templates。mrT28資訊網——每日最新資訊28at.com

要開啟或調整組件掃描的范圍,你可以使用 @ComponentScan 注解。mrT28資訊網——每日最新資訊28at.com

這個注解我們都不用多說了把,指明掃包路徑mrT28資訊網——每日最新資訊28at.com

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.ComponentScan;@SpringBootApplication@ComponentScan(basePackages = "com.example.myapp") // 指定掃描的包路徑public class MySpringBootApplication {    public static void main(String[] args) {        SpringApplication.run(MySpringBootApplication.class, args);    }}

本文鏈接:http://www.tebozhan.com/showinfo-26-85875-0.html一篇學會SpringBoot的核心內容之自動裝配

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

上一篇: 一種避免大量If-else代碼的新思路

下一篇: WPF開發:使用命令模式實現Undo和Redo功能

標簽:
  • 熱門焦點
  • 小米平板5 Pro 12.4簡評:多專多能 兼顧影音娛樂的大屏利器

    疫情帶來了網課,網課盤活了安卓平板,安卓平板市場雖然中途停滯了幾年,但好的一點就是停滯的這幾年行業又有了新的發展方向,例如超窄邊框、高刷新率、多攝鏡頭組合等,這就讓安卓
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • Golang 中的 io 包詳解:組合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是對Reader和Writer接口的組合,
  • 之家push系統迭代之路

    前言在這個信息爆炸的互聯網時代,能夠及時準確獲取信息是當今社會要解決的關鍵問題之一。隨著之家用戶體量和內容規模的不斷增大,傳統的靠"主動拉"獲取信息的方式已不能滿足用
  • 如何使用JavaScript創建一只圖像放大鏡?

    譯者 | 布加迪審校 | 重樓如果您曾經瀏覽過購物網站,可能遇到過圖像放大功能。它可以讓您放大圖像的特定區域,以便瀏覽。結合這個小小的重要功能可以大大改善您網站的用戶體驗
  • JavaScript學習 -AES加密算法

    引言在當今數字化時代,前端應用程序扮演著重要角色,用戶的敏感數據經常在前端進行加密和解密操作。然而,這樣的操作在網絡傳輸和存儲中可能會受到惡意攻擊的威脅。為了確保數據
  • 蘋果公司要求三星和LG Display生產「無邊框」OLED iPhone顯示屏

    據 The Elec 報道,蘋果已要求其供應商為未來的 iPhone 型號開發「無邊框」OLED 顯示面板。蘋果顯然已要求三星和 LG Display 開發新的 OLED 顯示面
  • iQOO 11S新品發布會

    iQOO將在7月4日19:00舉行新品發布會,推出杭州亞運會電競賽事官方用機iQOO 11S。
  • 2299元起!iQOO Pad明晚首銷:性能最強天璣平板

    5月23日,iQOO如期舉行了新品發布會,除了首發安卓最強旗艦處理器的iQOO Neo8系列新機外,還在發布會上推出了旗下首款平板電腦——iQOO Pad,其最大的賣點
Top