国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

這篇具有很好參考價(jià)值的文章主要介紹了SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本文同步更新于鼠鼠之家

starter定義

starter就是springboot中的起步依賴,雖然springboot已經(jīng)提供了很多的起步依賴,但是在實(shí)際項(xiàng)目開發(fā)中可能會用到和第三方的技術(shù),不是所有第三方在springboot中都有收錄。

比如之前文章中有用到過的阿里云OSS,阿里云并沒有提供起步依賴,導(dǎo)致每次使用時(shí)都要自己寫一些類。

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

springboot官方提供的起步以來是spring-boot在前,其他提供的通常都是技術(shù)名在前。

下面mybatis的起步依賴中沒有java代碼,只是整合了mybatis開發(fā)需要的依賴的坐標(biāo)SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))?其中包含了一個(gè)依賴mybatis-spring-boot-autoconfigure,這個(gè)自動(dòng)配置類里面聲明了一堆Bean對象。

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

?里面可以看見一些常用的類比如SqlSessionFactory?SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

那么這些配置類配置好之后是如何被SpringBoot項(xiàng)目加載到IOC容器并完成自動(dòng)配置的呢?

前面有說到過,SpringBoot在啟動(dòng)時(shí)會加載依賴中的兩份文件,如果是老版本的就加載spring.factories,如果是新版本的就加載autoconfigure.import這個(gè)文件。

因此該自動(dòng)配置類配置好之后,就可以在spring.factories或者是autoconfigure.import文件中配置這個(gè)自動(dòng)配置類。

最終會兒被加載到spring的IOC容器當(dāng)中.

因此自定義一個(gè)起步依賴starter的時(shí)候按照規(guī)范需要定義兩個(gè)模塊,一個(gè)是starter模塊,其唯一的作用就是進(jìn)行依賴管理。

另一個(gè)autoconifure的包就是完成自動(dòng)配置的操作。?

最終在項(xiàng)目中只會導(dǎo)入starter模塊,因?yàn)閟tarter已經(jīng)導(dǎo)入了autoconfigure模塊了。????????

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

上面就是簡單介紹了自定義starter的場景以及自定義starter涉及的各個(gè)模塊和各個(gè)模塊涉及的功能.

自定義starter案例

需求說明

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

在不封裝的時(shí)候,每次使用都要自己手動(dòng)寫一些OSS的工具類并添加到IOC容器當(dāng)中去。

根據(jù)阿里云官方提供的示例SDK文件改造成如下一個(gè)工具類,并在yml配置文件當(dāng)中配置需要的參數(shù),然后還要一個(gè)實(shí)體類加載配置文件中的配置項(xiàng)。

最后才可以在工具類中獲取到需要的參數(shù),然后交給springIOC容器管理,然后在項(xiàng)目用到時(shí)就直接注入。

這個(gè)過程十分的繁瑣

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))?SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

具體封裝看這里一下兩篇文章

云服務(wù)——阿里云OSS的入門使用_北嶺山腳鼠鼠的博客-CSDN博客SpringBoot——SB整合mybatis案例(殘缺版本)第三集_北嶺山腳鼠鼠的博客-CSDN博客

上面的這個(gè)過程是十分繁瑣且重復(fù)的一個(gè)過程,因此可以將其封裝成一個(gè)依賴項(xiàng),可以通過坐標(biāo)引入后直接使用。

步驟分析

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

具體實(shí)現(xiàn)?

創(chuàng)建好兩個(gè)需要的模塊

選擇新建新模塊

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

首先新建一個(gè)starter模塊

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))?規(guī)整starter模塊的pom.xml文件如下

先改版本為2.7.5,再刪除多余的依賴。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-oss-spring-boot-starter</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    </dependencies>
</project>

然后starter模塊的項(xiàng)目文件刪除的只剩下一個(gè)pom.xml和一個(gè)iml文件。

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

然后再新建一個(gè)autoconfigure的模塊,按照上面的流程再走一次

然后修改?autoconfigure模塊的pom.xml如下,將項(xiàng)目文件刪成如下的結(jié)構(gòu),只比上面多一個(gè)src

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-oss-spring-boot-autoconfigure</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

    </dependencies>

</project>

將來autoconfigure是作為其他項(xiàng)目文件的依賴的,所以application這個(gè)啟動(dòng)類不需要,配置文件也不需要,測試單元也不需要。刪除如下圖所示的三個(gè)文件?

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

模塊創(chuàng)建工作結(jié)束?(上面就準(zhǔn)備好了一個(gè)依賴所需要的兩個(gè)基本模塊了)

然后需要在starter模塊引入autoconfigure模塊,這是前面提到過的規(guī)范。

直接導(dǎo)入autoconfigure的坐標(biāo)。

        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-oss-spring-boot-autoconfigure</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

在autoconfigure中完成自動(dòng)配置操作

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

?根據(jù)目標(biāo)需求,需要在autoconfigure準(zhǔn)備一個(gè)AliyunOSSUtils工具類。

1.引入依賴

要在項(xiàng)目中使用阿里云OSS需要引入阿里云OSS的依賴,引入如下依賴在autoconfigure中

        <!--阿里云OSS的依賴-->
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.15.1</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- no more than 2.3.3-->
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.3</version>
        </dependency>

2.準(zhǔn)備工具類和實(shí)體類?

在之前的項(xiàng)目開發(fā)中使用阿里云OSS時(shí)需要用到的類有一個(gè)工具類和一個(gè)實(shí)體類

實(shí)體類里面封裝的是阿里云的key和id還有資源桶的名字

package com.example.utils;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliOSSProperties {
    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;
}

還有一個(gè)工具類

package com.example.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.UUID;

/**
 * 阿里云 OSS 工具類
 */

@Component
public class AliOSSUtils {

    //    @Value("${aliyun.oss.endpoint}")
//    private String endpoint ;
//    @Value("${aliyun.oss.accessKeyId}")
//    private String accessKeyId ;
//    @Value("${aliyun.oss.accessKeySecret}")
//    private String accessKeySecret ;
//    @Value("${aliyun.oss.bucketName}")
//    private String bucketName ;

/*    @Value("${aliyun.oss.endpoint}")
    private String endpoint;
    @Value("${aliyun.oss.accessKeyId}")
    private String accessKeyId;

    @Value("${aliyun.oss.accessKeySecret}")
    private String accessKeySecret;

    @Value("${aliyun.oss.bucketName}")
    private String bucketName;*/


    @Autowired
    private AliOSSProperties aliOSSProperties;

    /**
     * 實(shí)現(xiàn)上傳圖片到OSS
     */
    public String upload(MultipartFile file) throws IOException {
        String endpoint=aliOSSProperties.getEndpoint();
        String bucketName=aliOSSProperties.getBucketName();
        String accessKeyId=aliOSSProperties.getAccessKeyId();
        String accessKeySecret=aliOSSProperties.getAccessKeySecret();

        // 獲取上傳的文件的輸入流

        InputStream inputStream = file.getInputStream();

        // 避免文件覆蓋
        String originalFilename = file.getOriginalFilename();
        String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));

        //上傳文件到 OSS
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        ossClient.putObject(bucketName, fileName, inputStream);

        //文件訪問路徑
        String url = endpoint.split("http://")[0] + "http://" + bucketName + "." + endpoint.split("http://")[1] + "/" + fileName;
        // 關(guān)閉ossClient
        ossClient.shutdown();
        return url;// 把上傳到oss的路徑返回
    }

}

將上面兩個(gè)文件放到autoconfigure項(xiàng)目中時(shí)會有一個(gè)報(bào)錯(cuò),需要引入兩個(gè)新的依賴

一個(gè)是web開發(fā)的以來,一個(gè)是@Data注解的依賴,又或者可以不引入lombok的以來,然后手動(dòng)提供get和set方法。直接把@Data的注解去掉即可,然后alt+insert即可

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

然后兩個(gè)類都沒有報(bào)錯(cuò)了,但是現(xiàn)在兩個(gè)類上的component注解已經(jīng)沒有用了,因?yàn)閷磉@個(gè)依賴引入項(xiàng)目時(shí)包掃描也不會掃這個(gè)依賴模塊的包,所以兩個(gè)類上的@component注解可以刪除了。

注意:這里刪除會導(dǎo)致aliOSSProperties實(shí)體類出現(xiàn)紅色報(bào)錯(cuò),但是這里可以先不用管,下面會解決。

然后還有工具類里面的@Autowired也可以刪除了,因?yàn)橐呀?jīng)不是IOC容器里面的Bean了,不能進(jìn)行autowired注入了。

但是根據(jù)需求提到的直接注入工具類直接使用,所以還是要將其交給spring容器進(jìn)行管理。

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

因此現(xiàn)在需要準(zhǔn)備一個(gè)自動(dòng)配置類來聲明阿里云OSS的這個(gè)工具類的Bean,然后將配置類交給spring容器管理。

3.新建自動(dòng)配置類

這個(gè)配置類可以獲取到AliOSSUtils這個(gè)工具類的,然后直接使用upload方法進(jìn)行文件上傳操作,但是在那之前upload方法里面是還需要一個(gè)aliOSSProperties成員變量的,所以在工具類當(dāng)中還要準(zhǔn)備它的get和set方法.

然后在獲取到AliOSSUtils時(shí)還需要為里面的aliOSSProperties賦值。

然后aliOSSProperties當(dāng)中需要的屬性值都是從配置文件當(dāng)中獲取得到的,然后封裝成一個(gè)aliOSSProperties實(shí)體類。

@ConfigurationProperties(prefix = "aliyun.oss")

這里需要解決上面這塊的報(bào)錯(cuò)問題,可以直接在自動(dòng)配置類上加上如下的注解,將AliOSSProperties變成一個(gè)IOC容器中Bean對象就不會報(bào)錯(cuò)了。

@EnableConfigurationProperties(AliOSSProperties.class)

再然后在配置類,聲明一個(gè)第三方Bean時(shí)需要注入某一個(gè)對象可以直接在方法形參中指定,最終會自動(dòng)裝配進(jìn)來。


@Configuration
@EnableConfigurationProperties(AliOSSProperties.class)
public class AliOSSAutoConfiguration {
    @Bean
    public AliOSSUtils aliOSSUtils(AliOSSProperties aliOSSProperties){
        AliOSSUtils aliOSSUtils= new AliOSSUtils();
        aliOSSUtils.setAliOSSProperties(aliOSSProperties);
        return aliOSSUtils;
    }
}

到這里,自動(dòng)配置類已經(jīng)配置好了,另外兩個(gè)類別忘記刪除@Component和@Autowried注解并且加上aliOSSProperties的get還有set方法就可以了。

4.最后一步

要想自動(dòng)配置類被加載到項(xiàng)目中就需要在一個(gè)固定的配置文件中來配置。

就是META-INF/spring/xxx.imports中,所以現(xiàn)在autoconfigure模塊的resources目錄下新建一個(gè)對應(yīng)的文件夾和需要的一個(gè)名字很長的文件。

注意名字不能打錯(cuò)。

在這個(gè)文件中的都是自動(dòng)配置類的全類名,所以要把上面寫好的一個(gè)自動(dòng)配置類放到里面去。?

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

com.aliyun.oss.AliOSSAutoConfiguration

到此,這個(gè)starter已經(jīng)定義完了,在starter中進(jìn)行依賴管理,在configure中進(jìn)行自動(dòng)配置。

在測試工程中對封裝好的starter進(jìn)行測試

在提供的資源中有一個(gè)測試工程。

在這個(gè)測試工程的Controller層中有一個(gè)uploadController如下,需要將接收到文件上傳到阿里云OSS。

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

然后這里可以直接引入上面的起步依賴,然后就可以直接上傳文件到OSS了。

在測試工程的pom文件當(dāng)中,引入如下依賴。

        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-oss-spring-boot-starter</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

?然后就需要在配置文件當(dāng)中需要一些阿里云賬號的參數(shù),需要的配置信息有如下的四項(xiàng),都需要在測試工程的配置文件上準(zhǔn)備好。

這里根據(jù)個(gè)人的實(shí)際賬號資料進(jìn)行配置。?

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))?SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

最后在controller當(dāng)中實(shí)現(xiàn)如下,將已經(jīng)上傳的文件交給阿里云OSS進(jìn)行保存

@RestController
public class UploadController {
    @Autowired
    private AliOSSUtils aliOSSUtils;


    @PostMapping("/upload")
    public String upload(MultipartFile image) throws Exception {
        //上傳文件到阿里云 OSS
        String url=aliOSSUtils.upload(image);
        return url;
    }
}

項(xiàng)目運(yùn)行測試?(使用postman測試)

上面那里將依賴導(dǎo)入別的項(xiàng)目時(shí)可能會有出現(xiàn)Cannot reconnect的傻狗報(bào)錯(cuò),這時(shí)候只需要重啟IDEA即可。

成功上傳文件到阿里云并且獲得了文件url。?

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))

完成了這個(gè)依賴封裝,我就可以自己搞一個(gè)網(wǎng)頁,然后自己上傳自己的東西,然后自己下載自己的東西了。?真不錯(cuò)。

小結(jié)

SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))文章來源地址http://www.zghlxwxcb.cn/news/detail-464300.html

?SpringBoot原理章節(jié)完結(jié)撒花!

到了這里,關(guān)于SpringBoot——原理(自動(dòng)配置_案例(自定義阿里云文件上starter))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot案例-配置文件-yml配置文件

    SpringBoot案例-配置文件-yml配置文件

    SpringBoot提供了多種屬性配置方式 application.properties application.yml application.yaml 常見配置文件格式對比 XML(臃腫) properties(層級結(jié)構(gòu)不夠清晰) yml/yaml( 簡潔,以數(shù)據(jù)為中心, 推薦使用 ) 基本語法 大小寫敏感 數(shù)值前必須有空格 ,作為分隔符 使用縮進(jìn)表示層級關(guān)系,縮進(jìn)時(shí)

    2024年02月11日
    瀏覽(19)
  • Springboot啟動(dòng)原理和自動(dòng)配置原理

    關(guān)于 springboot 啟動(dòng)流程和配置原理 很久就寫了,不過沒有詳細(xì)補(bǔ)充 ,現(xiàn)在補(bǔ)充 —— 2023-08-05 BootstrapRegistryInitializer 是一個(gè)函數(shù)是接口 org.springframework.boot.BootstrapRegistry 接口 getSpringFactoriesInstances 加載工廠中組件實(shí)現(xiàn)方式 org.springframework.core.io.support.SpringFactoriesLoader#loadSpringFacto

    2023年04月25日
    瀏覽(23)
  • SpringBoot原理-自動(dòng)配置-原理分析-源碼跟蹤

    SpringBoot原理-自動(dòng)配置-原理分析-源碼跟蹤

    SpringBootApplication 該注解標(biāo)識在SpringBoot項(xiàng)目的啟動(dòng)類上,是SpringBoot中 最為重要 的注解,該注解由三個(gè)部分組成。 @SpringBootConfiguration:該注解與@Configuration注解作用一樣,用來聲明當(dāng)前類為一個(gè)配置類 @ComponentScan:組件掃描,默認(rèn)掃描當(dāng)前啟動(dòng)類所在包及其子包 @EnableAutoConf

    2024年02月09日
    瀏覽(27)
  • SpringBoot自動(dòng)配置原理

    SpringBoot自動(dòng)配置原理

    springboot是基于spring的新型的輕量級框架,最厲害的地方當(dāng)屬**自動(dòng)配置。**那我們就可以根據(jù)啟動(dòng)流程和相關(guān)原理來看看,如何實(shí)現(xiàn)傳奇的自動(dòng)配置 從上面代碼可以看出,Annotation定義(@SpringBootApplication)和類定義(SpringApplication.run)最為耀眼,所以要揭開SpringBoot的神秘面紗

    2024年01月21日
    瀏覽(24)
  • SpringBoot 自動(dòng)配置原理

    springboot是基于spring的新型的輕量級框架,最厲害的地方當(dāng)屬**自動(dòng)配置。**那我們就可以根據(jù)啟動(dòng)流程和相關(guān)原理來看看,如何實(shí)現(xiàn)傳奇的自動(dòng)配置 從上面代碼可以看出,Annotation定義(@SpringBootApplication)和類定義(SpringApplication.run)最為耀眼,所以要揭開SpringBoot的神秘面紗

    2024年01月20日
    瀏覽(19)
  • SpringBoot自動(dòng)配置的原理

    SpringBoot自動(dòng)配置的原理

    以WebMvcAutoConfiguration自動(dòng)配置的原理為例,SpringBoot內(nèi)部對大量的第三方庫或Spring內(nèi)部庫進(jìn)行了默認(rèn)配置,這些配置是否生效,取決于我們是否引入了對應(yīng)庫所需的依賴,如果有那么默認(rèn)配置就會生效。如果引入springboot-starter-web那么對應(yīng)的web配置就會自動(dòng)配置。那么是如何自動(dòng)

    2024年02月09日
    瀏覽(28)
  • SpringBoot3自動(dòng)配置原理

    SpringBoot3自動(dòng)配置原理

    遵循約定大約配置的原則,在boot程序啟動(dòng)后,起步依賴中的一些bean對象會自動(dòng)注入到ioc容器 看一下我們前面寫的代碼有沒有達(dá)到自動(dòng)配置的效果呢? 沒有自動(dòng),我們寫了配置類,寫了@Import注解,所以并沒有達(dá)到自動(dòng)配置的效果。那怎么辦呢?接下來我們通過翻看源碼的方

    2024年01月22日
    瀏覽(32)
  • SpringBoot自動(dòng)配置原理簡單分析

    SpringBoot自動(dòng)配置原理簡單分析

    說明:在SpringBoot項(xiàng)目中,我們添加了許許多多的注解,這些注解提高了開發(fā)效率。這是因?yàn)镾pringBoot在項(xiàng)目啟動(dòng)時(shí),幫我們自動(dòng)裝配了大量的Bean對象,可以通過分析源碼查看自動(dòng)裝配的大致原理。 進(jìn)入到啟動(dòng)類中的@SpringBootApplication注解中,該注解里面有七個(gè)注解,上面四個(gè)

    2024年02月09日
    瀏覽(21)
  • springboot 原理分析之自動(dòng)配置

    springboot 原理分析之自動(dòng)配置

    ???????? Condition 是在 Spring 4.0 增加的條件判斷功能,通過這個(gè)可以功能可以實(shí)現(xiàn)選擇性的創(chuàng)建 Bean 操作。比如說,只有滿足某一個(gè)條件才能創(chuàng)建這個(gè) Bean ,否則就不創(chuàng)建。 ????????SpringBoot 是如何知道要?jiǎng)?chuàng)建哪個(gè) Bean 的?比如 SpringBoot 是如何知道要?jiǎng)?chuàng)建? RedisTemplate?

    2024年01月19日
    瀏覽(17)
  • SpringBoot:自動(dòng)配置源碼底層原理分析

    SpringBoot:自動(dòng)配置源碼底層原理分析

    聲明:原文作者:yuan_404 配置文件到底能寫什么?怎么寫? SpringBoot 官方文檔中有大量的配置,我們無法全部記住 ,下面我們就梳理一下最核心的幾個(gè)部分進(jìn)行講解。 以HttpEncodingAutoConfiguration(Http編碼自動(dòng)配置)為例解釋自動(dòng)配置原理; @Configuration(proxyBeanMethods = false) 表示

    2023年04月09日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包