1
私は、Springブートのどのプロパティがユーザーによって構成されたか、スプリング自動構成かを判断しようとしています。私はすべてのプロパティをリストすることができますが、私はユーザーが宣言したプロパティを取得する方法を特定していません。 application.properties:Springブートユーザープロパティの抽出
//このメソッドは、春の環境
public Properties getSpringEnvironmentProperties() {
Properties props = new Properties();
MutablePropertySources propSrcs = ((AbstractEnvironment) env).getPropertySources();
StreamSupport.stream(propSrcs.spliterator(), false)
.filter(ps -> ps instanceof EnumerablePropertySource)
.map(ps -> ((EnumerablePropertySource) ps).getPropertyNames())
.flatMap(Arrays::<String>stream)
.forEach(propName -> props.setProperty(propName, env.getProperty(propName)));
return props;
}
内のすべてのプロパティを取得するだけのようなファイルで宣言されているユーザーのプロパティを取得する方法はありますか?
私はアプリケーションの作者でも動作しますが、スターターを書くときは動作しません。ユーザーが使用するプロパティファイルの名前はわかりません。 –
あなたのケースは私を混乱させます。プロパティを制御できない場合は、既存のシステムプロパティをオーバーライドする可能性があるため、 –
これは予想されます。私は、ユーザーが作成したすべてのプロパティを解析し、その情報をデフォルトでRest Endpointとして提供するSpring Bootスターターを効果的に作成しています。 (アクチュエーターと概念が似ています) –