爲了更好的理解 Spring Boot 的 自動配置和工做原理,咱們本身來實現一個簡單的自動配置模塊。spring
假設,如今項目須要一個功能,須要自動記錄項目發佈者的相關信息,咱們如何經過 Spring Boot 的自動配置,更好的實現功能呢?性能優化
先建立一個Maven項目,我來手動配置下 POM 文件。架構
首先,咱們定義一個自定義前綴,叫作 custom 吧。以前說到,這裏的配置參數,能夠經過 application.properties 中直接設置。那麼,咱們建立一個做者的字段,設置默認值爲 LiangGzone。併發
那麼,聰明的你,應該想到了,咱們在 application.properties 中配置的時候,就要這樣配置了。app
#custom分佈式
custom.author = James微服務
你沒有看錯,真的是太簡單了,沒有高大上的複雜業務。它的主要用途就是賦值。高併發
@ConditionalOnClass,參數中對應的類在 classpath 目錄下存在時,纔會去解析對應的配置類。所以,咱們須要配置 AuthorServer 。源碼分析
@EnableConfigurationProperties, 用來加載配置參數,因此它應該就是屬性參數類性能
AuthorProperties。
authorResolver方法的做用,即 AuthorProperties 的參數賦值到AuthorServer 中。
咱們須要實現自定義自動裝配,就須要自定義 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工程化