1. 程式人生 > >阿裏微服務專家手寫Spring Boot 實現一個簡單的自動配置模塊

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

微服務 簡單的 AR AI tps ble 免費 VM 知識體系

技術分享圖片

為了更好的理解 Spring Boot 的 自動配置和工作原理,我們自己來實現一個簡單的自動配置模塊。

假設,現在項目需要一個功能,需要自動記錄項目發布者的相關信息,我們如何通過 Spring Boot 的自動配置,更好的實現功能呢?

實戰的開端 – Maven搭建

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

技術分享圖片

參數的配置 - 屬性參數類

首先,我們定義一個自定義前綴,叫做 custom 吧。之前說到,這裏的配置參數,可以通過 application.properties 中直接設置。那麽,我們創建一個作者的字段,設置默認值為 LiangGzone。

技術分享圖片

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

#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

運行起來,我們看下打印的發布者信息是什麽?

在此我向大家推薦一個架構學習交流群。交流學習群號:697-57-97-51 裏面會分享一些資深架構師錄制的視頻錄像:有Spring,MyBatis,Netty源碼分析,高並發、高性能、分布式、微服務架構的原理,JVM性能優化、分布式架構等這些成為架構師必備的知識體系。還能領取免費的學習資源,目前受益良多

一、源碼分析

技術分享圖片

二、分布式架構

技術分享圖片

三、微服務

技術分享圖片

四、性能優化

技術分享圖片

五、Java工程化

技術分享圖片

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