欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot核心機制詳細(xì)介紹

 更新時間:2024年11月14日 14:52:22   作者:前鼻音太陽熊  
SpringBoot的核心機制包括自動配置、起步依賴、主類和運行器、以及嵌入式服務(wù)器等,通過這些機制,SpringBoot簡化了應(yīng)用開發(fā)過程,本文給大家介紹Springboot核心機制,感興趣的朋友一起看看吧

Spring Boot 的核心機制主要包括自動配置、起步依賴、主類和運行器、以及嵌入式服務(wù)器等。下面我們將詳細(xì)介紹這些核心機制,來對Spring Boot有一個初步了解。

1. 自動配置 (Auto-configuration)

自動配置是 Spring Boot 最重要的特性之一,它能夠根據(jù)類路徑中的依賴自動配置 Spring 應(yīng)用。Spring Boot 通過一系列的 @Conditional 注解來決定哪些配置類應(yīng)該被加載。

1.1 @SpringBootApplication 注解

@SpringBootApplication 是一個組合注解,包含了以下幾個注解:

  • @Configuration:標(biāo)記該類為配置類。
  • @EnableAutoConfiguration:啟用自動配置。
  • @ComponentScan:啟用組件掃描,自動發(fā)現(xiàn)和注冊 Spring 組件。
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

1.2 @EnableAutoConfiguration 注解

@EnableAutoConfiguration 注解會觸發(fā)自動配置機制。Spring Boot 會在類路徑中查找?guī)в?@Configuration 注解的類,并根據(jù)條件(如類路徑中的依賴)決定是否應(yīng)用這些配置。

1.3 條件注解 (@Conditional)

Spring Boot 使用各種 @Conditional 注解來控制配置類的加載條件。常見的條件注解包括:

  • @ConditionalOnClass:當(dāng)類路徑中存在指定類時生效。
  • @ConditionalOnMissingBean:當(dāng)容器中不存在某個 Bean 時生效。
  • @ConditionalOnProperty:當(dāng)配置文件中存在指定屬性時生效。

2. 起步依賴 (Starter Dependencies)

起步依賴是 Spring Boot 提供的一組依賴管理,旨在簡化項目配置。每個起步依賴都包含了一組相關(guān)的依賴項,使得開發(fā)者只需聲明一個依賴就能引入多個相關(guān)的庫。

2.1 常見的起步依賴

  • spring-boot-starter-web:包含構(gòu)建 Web 應(yīng)用所需的依賴,如 Spring MVC 和嵌入式 Tomcat。
  • spring-boot-starter-data-jpa:包含構(gòu)建數(shù)據(jù)訪問層所需的依賴,如 Spring Data JPA 和 Hibernate。
  • spring-boot-starter-test:包含測試所需的依賴,如 JUnit、Mockito 等。

2.2 Maven 依賴示例

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

3. 主類和運行器 (Main Class and Runners)

Spring Boot 應(yīng)用通常有一個主類,該類包含 main 方法,用于啟動應(yīng)用。

3.1 主類

主類通常使用 @SpringBootApplication 注解,并包含 main 方法。

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

3.2 SpringApplication 類

SpringApplication 類負(fù)責(zé)啟動 Spring Boot 應(yīng)用。它會執(zhí)行以下任務(wù):

初始化 Spring 應(yīng)用上下文。加載配置文件。執(zhí)行自動配置。啟動嵌入式服務(wù)器(如果適用)。 3.3 運行器 (ApplicationRunnerCommandLineRunner)

你可以實現(xiàn) ApplicationRunnerCommandLineRunner 接口,在應(yīng)用啟動后執(zhí)行一些初始化操作。

@Component
public class MyRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("Application started!");
    }
}

4. 嵌入式服務(wù)器 (Embedded Server)

Spring Boot 支持多種嵌入式 Web 服務(wù)器,如 Tomcat、Jetty 和 Undertow。默認(rèn)情況下,Spring Boot 使用 Tomcat 作為嵌入式服務(wù)器。

4.1 嵌入式 Tomcat

Spring Boot 通過 spring-boot-starter-web 依賴自動包含 Tomcat 的相關(guān)依賴。你可以通過配置文件來定制服務(wù)器的端口、上下文路徑等屬性。

4.2 自定義服務(wù)器

如果你希望使用其他服務(wù)器,可以通過排除默認(rèn)的 Tomcat 依賴并添加其他服務(wù)器的依賴來實現(xiàn)。

Maven 示例

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

5. 配置文件 (Configuration Files)

Spring Boot 支持多種配置文件格式,如 application.propertiesapplication.yml。這些文件用于配置應(yīng)用的各種屬性。

5.1 application.properties 示例

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root

5.2 application.yml 示例

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: root

6. 總結(jié)

Spring Boot 的核心機制包括自動配置、起步依賴、主類和運行器、以及嵌入式服務(wù)器。這些機制共同作用,使得 Spring Boot 應(yīng)用開發(fā)變得更加簡單和高效。通過自動配置,Spring Boot 可以根據(jù)類路徑中的依賴自動配置應(yīng)用;通過起步依賴,開發(fā)者可以輕松管理項目依賴;通過主類和運行器,應(yīng)用可以方便地啟動和執(zhí)行初始化操作;通過嵌入式服務(wù)器,應(yīng)用可以作為一個獨立的 JAR 文件運行。
就是這樣啦,后面筆者還會介紹怎么來定制化的寫一個自己的啟動類SpringApplication,來做一些定制化的動作。

到此這篇關(guān)于Springboot核心機制的文章就介紹到這了,更多相關(guān)Springboot核心機制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java隨機字符補充版

    java隨機字符補充版

    今天在zuidaimai看到一個java隨機字符生成demo,正好要用,但發(fā)現(xiàn)不完整,重新整理一下,分享給有需要的朋友
    2014-01-01
  • Mybatis-Plus開發(fā)提速器mybatis-plus-generator-ui詳解

    Mybatis-Plus開發(fā)提速器mybatis-plus-generator-ui詳解

    這篇文章主要介紹了Mybatis-Plus開發(fā)提速器mybatis-plus-generator-ui,本文簡要介紹一款基于Mybatis-Plus的代碼自助生成器,文章通過實例集成的方式來詳細(xì)講解mybatis-plus-generator-ui,從相關(guān)概念到實際集成案例,以及具體的擴展開發(fā)介紹,需要的朋友可以參考下
    2022-11-11
  • mybatis的association傳遞參數(shù)問題示例

    mybatis的association傳遞參數(shù)問題示例

    這篇文章主要介紹了mybatis的association傳遞參數(shù)問題,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • 如何把VS Code打造成Java開發(fā)IDE

    如何把VS Code打造成Java開發(fā)IDE

    這篇文章主要介紹了如何把VS Code打造成Java開發(fā)IDE,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • java 函數(shù)的重載和重寫實例代碼

    java 函數(shù)的重載和重寫實例代碼

    本文主要介紹Java 的重載和重寫,學(xué)習(xí)java的同學(xué)都知道Java的多態(tài)有多重要,這里給大家舉例說明函數(shù)的重載和重寫,希望能幫助有需要的小伙伴
    2016-07-07
  • Java代理模式(Proxy)實現(xiàn)方法詳解

    Java代理模式(Proxy)實現(xiàn)方法詳解

    這篇文章主要介紹了Java代理模式(Proxy)實現(xiàn)的相關(guān)資料,代理模式是一種結(jié)構(gòu)型設(shè)計模式,通過引入代理對象來控制對目標(biāo)對象的訪問,代理模式的優(yōu)點包括職責(zé)清晰、擴展性好、保護(hù)目標(biāo)對象和增強功能,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • Spring Cloud 2020.0.0正式發(fā)布再見了Netflix

    Spring Cloud 2020.0.0正式發(fā)布再見了Netflix

    這篇文章主要介紹了Spring Cloud 2020.0.0正式發(fā)布再見了Netflix,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • SpringBoot之返回json數(shù)據(jù)的實現(xiàn)方法

    SpringBoot之返回json數(shù)據(jù)的實現(xiàn)方法

    這篇文章主要介紹了SpringBoot之返回json數(shù)據(jù)的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 如何利用IDEA搭建SpringBoot項目整合mybatis實現(xiàn)簡單的登錄功能

    如何利用IDEA搭建SpringBoot項目整合mybatis實現(xiàn)簡單的登錄功能

    這篇文章主要介紹了如何利用IDEA搭建SpringBoot項目整合mybatis實現(xiàn)簡單的登錄功能,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • javaWeb項目部署到阿里云服務(wù)器步驟詳解

    javaWeb項目部署到阿里云服務(wù)器步驟詳解

    本篇文章主要介紹了javaWeb項目部署到阿里云服務(wù)器步驟詳解,非常具有實用價值,需要的朋友可以參考下
    2017-05-05

最新評論