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

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

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

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

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

SpringBoot裝配機制

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

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

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

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

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

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

約定優于配置

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

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

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

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

核心注解EnableAutoConfiguration

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

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

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

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

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

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

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

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

自動掃描

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

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

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

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

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

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

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

這個注解我們都不用多說了把,指明掃包路徑lip28資訊網——每日最新資訊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.www897cc.com/showinfo-26-85875-0.html一篇學會SpringBoot的核心內容之自動裝配

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

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

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

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 肃宁县| 沈阳市| 泰兴市| 石泉县| 宜宾县| 通河县| 桦甸市| 保康县| 仙居县| 乐东| 日喀则市| 永城市| 手机| 石门县| 金川县| 平邑县| 白沙| 青岛市| 定边县| 岳普湖县| 巢湖市| 枣阳市| 广德县| 峡江县| 枣庄市| 呼伦贝尔市| 厦门市| 新闻| 林西县| 富川| 扶绥县| 浦东新区| 尚志市| 河源市| 虞城县| 宽城| 南安市| 玛曲县| 恩施市| 黄陵县| 大余县|