マイクロサービスの1つをSpring Boot 2.0.0.M6に移行していますが、コマンドラインで--spring.config.location=
オプションを使用するとエラーが発生します。エラーは次のとおりです。
Caused by: Java.lang.IllegalArgumentException: Could not resolve placeholder 'property' in value "${property}"
at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.Java:172) ~[spring-core-5.0.1.RELEASE.jar:5.0.1.RELEASE]
at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.Java:124) ~[spring-core-5.0.1.RELEASE.jar:5.0.1.RELEASE]
at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.Java:237) ~[spring-core-5.0.1.RELEASE.jar:5.0.1.RELEASE]
at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.Java:211) ~[spring-core-5.0.1.RELEASE.jar:5.0.1.RELEASE]
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.Java:175) ~[spring-context-5.0.1.RELEASE.jar:5.0.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.Java:834) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.Java:1081) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.Java:1060) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.Java:578) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.Java:91) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.Java:367) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE]
... 50 common frames omitted
カスタムプロパティファイルを使用しない場合、すべてが意図したとおりに機能するか、RELEASEバージョンを使用します。次のコマンドでアプリケーションを起動しています。
Java -jar application.jar --spring.config.location=app.properties
このオプションを使用すると、引数ファイルのプロパティを上書きする以前のバージョンのSpringとは異なり、Springはプロジェクトのデフォルトのapplication.propertiesを完全に置き換えます。これはバグですか?
チームから response を取得しました。明らかにこれは意図された動作です。古いバージョンの動作を使用する方法があるかどうかを今すぐ知ることを試みます。
Springチームが述べたように、spring.config.location
の古い動作を使用する正しい方法は、新しいspring.config.additional-location
を使用することです
あなたのプロジェクト構造は非常に役に立ちます。しかしそれは別として。
春のドキュメントはフラグを使用する方法の例を示します:
--spring.config.location=classpath:/default.properties
クラスパスに対してアプリケーションのプロパティを解決してみてください。