阿里微服務專家手寫Spring Boot 實現一個簡單的自動配置模塊

爲了更好的理解 Spring Boot 的 自動配置和工做原理,咱們本身來實現一個簡單的自動配置模塊。spring

假設,如今項目須要一個功能,須要自動記錄項目發佈者的相關信息,咱們如何經過 Spring Boot 的自動配置,更好的實現功能呢?性能優化

實戰的開端 – Maven搭建

先建立一個Maven項目,我來手動配置下 POM 文件。架構

參數的配置 - 屬性參數類

首先,咱們定義一個自定義前綴,叫作 custom 吧。以前說到,這裏的配置參數,能夠經過 application.properties 中直接設置。那麼,咱們建立一個做者的字段,設置默認值爲 LiangGzone。併發

那麼,聰明的你,應該想到了,咱們在 application.properties 中配置的時候,就要這樣配置了。app

#custom分佈式

custom.author = James微服務

真的很簡單 - 簡單的服務類

你沒有看錯,真的是太簡單了,沒有高大上的複雜業務。它的主要用途就是賦值。高併發

自動配置的核心 - 自動配置類

@ConditionalOnClass,參數中對應的類在 classpath 目錄下存在時,纔會去解析對應的配置類。所以,咱們須要配置 AuthorServer 。源碼分析

@EnableConfigurationProperties, 用來加載配置參數,因此它應該就是屬性參數類性能

AuthorProperties。

authorResolver方法的做用,即 AuthorProperties 的參數賦值到AuthorServer 中。

spring.factories 不要遺漏

咱們須要實現自定義自動裝配,就須要自定義 spring.factories 參數。因此,咱們須要在 src/main/resources/ META-INF/spring.factories 中配置信息,值得注意的是,這個文件要本身建立。

功能打包與配置依賴

好了,咱們已經實現了一個簡單的自動配置功能。那麼,咱們須要將這個項目打成 jar 包部署在咱們的本地或者私服上。而後,就能夠用了。

咱們在另一個項目中,配置 Maven 依賴。

測試,測試

運行起來,咱們看下打印的發佈者信息是什麼?

咱們在 application.properties 中配置一個信息。

#custom

custom.author = James

運行起來,咱們看下打印的發佈者信息是什麼?

在此我向你們推薦一個架構學習交流羣。交流學習羣號:575745314  裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構等這些成爲架構師必備的知識體系。還能領取免費的學習資源,目前受益良多

1、源碼分析

2、分佈式架構

3、微服務

4、性能優化

5、Java工程化

相關文章
相關標籤/搜索