ナコスサービスからアプリケーションのスタートアップコンフィギュレーションは、アプリケーションにロードされた後、アリオープンソースによってナコス悟りを開いたが、ローカルにロードする設定がローカルストアからロードすることができたときに開発された思考は、そのような効率は、開発を加速することができます
最初の
私たちは、SpringCloudプロジェクトのアプリケーションナコスのサービスを見てbootstrap.yaml
、次のような構成であります
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
discovery:
server-addr: 127.0.0.1:8848
application:
name: demo
profiles:
active: db,redis,rabbit,es,zk
次に、コンソール構成ナコスを追加
上記後、アプリケーションはナコスから取るように配置することができます。
問題
私は、ファイルシステムの代替ナコスから設定を読み込む場合はここで開発する場合、開発効率をスピードアップすることができます、だけでなく、快適なコーディングビジネスコードを感じるようにと考えています。
スタートアップコンフィギュレーション分析した後spring.factories
や構成のクラスをNacosConfigProperties
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
org.springframework.cloud.alibaba.nacos.NacosConfigBootstrapConfiguration
検索NacosConfigBootstrapConfiguration
は次のようなコードがあります
@Configuration
@ConditionalOnProperty(name = "spring.cloud.nacos.config.enabled", matchIfMissing = true)
public class NacosConfigBootstrapConfiguration {
@Bean
@ConditionalOnMissingBean
public NacosConfigProperties nacosConfigProperties() {
return new NacosConfigProperties();
}
@Bean
public NacosPropertySourceLocator nacosPropertySourceLocator(
NacosConfigProperties nacosConfigProperties) {
return new NacosPropertySourceLocator(nacosConfigProperties);
}
}
鍵は内側にあるNacosPropertySourceLocator
実装インタフェースPropertySourceLocator
/**
* Strategy for locating (possibly remote) property sources for the Environment.
* Implementations should not fail unless they intend to prevent the application from
* starting.
*
* @author Dave Syer
*
*/
public interface PropertySourceLocator {
/**
* @param environment The current Environment.
* @return A PropertySource, or null if there is none.
* @throws IllegalStateException if there is a fail-fast condition.
*/
PropertySource<?> locate(Environment environment);
}
ここでそれを行う方法を理解します。
具体的な表情私はgitリポジトリhttps://github.com/lyg123/SpringCloudLocalCofigDemoを共有します
新しいbootstarp.yaml
次のように設定があります
spring:
cloud:
nacos:
config:
enabled: false
server-addr: 127.0.0.1:8848
file-extension: yaml
discovery:
server-addr: 127.0.0.1:8848
application:
name: demo
profiles:
active: db,redis,rabbit,es,zk
このようなアプリケーションのスタートアップコンフィギュレーションは、ローカル・ファイル・システムまたはナコスサービスの負荷からロードされます