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

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

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

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

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

SpringBoot裝配機制

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

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

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

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

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

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

約定優于配置

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

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

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

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

核心注解EnableAutoConfiguration

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

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

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

這里是 @EnableAutoConfiguration 注解的基本用法:kBH28資訊網——每日最新資訊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。kBH28資訊網——每日最新資訊28at.com

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

@EnableAutoConfiguration 注解實際上是一個組合注解,它包含了 @AutoConfigurationPackage 和 @Import(AutoConfigurationImportSelector.class)。kBH28資訊網——每日最新資訊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 的上下文中。kBH28資訊網——每日最新資訊28at.com

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

比如我們排除某個特定的自動配置kBH28資訊網——每日最新資訊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 應用程序的配置過程,使開發者能夠專注于實現業務邏輯。kBH28資訊網——每日最新資訊28at.com

自動掃描

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

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

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

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

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

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

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

這個注解我們都不用多說了把,指明掃包路徑kBH28資訊網——每日最新資訊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功能

標簽:
  • 熱門焦點
Top