天天看點

【Spring Cloud】Spring Cloud之自定義@SpringCloudProfile注解實作@Profile注解的功能

一、為什麼會想到定義@SpringCloudProfile這樣的注解

首頁提一下@Profile注解:它主要用與Spring Boot多環境配置中,指定某個類隻在指定環境中生效,比如swagger的配置隻允許開發和測試環境開發,線上需要禁止使用。

使用@Profile進行如下配置:

但是在Spring Cloud中由于使用了配置中心,導緻啟動項目時沒有指定spring.profiles.active屬性導緻@Profile注解失效,原因就是@Profile通過擷取環境變量中spring.profiles.active屬性值,與注解中設定的值進行比較,包含就生效。

所有在Spring Cloud中需要換一個環境變量來實作,正好有spring.cloud.config.profile這個變量,該變量用于指定讀取配置中心那個環境配置的,一般有這些值,dev、test、prod

二、自定義@SpringCloudProfile注解的實作

1)定義@SpringCloudProfile注解

2)實作SpringCloudProfileCondition類,用于條件比對

你投入得越多,就能得到越多得價值

繼續閱讀