私はスプリングブートアプリケーションを持っています。私は自分のアプリケーションのすべての設定を提供する設定サービスアプリケーションを持っています。私は、アプリケーションのすべての設定をプルしてコンテキストに入れるクライアントを作成しました。アプリケーションがうまく働いていた。このような構成とスプリングデータの初期化の問題
@Configuration
public class PersistentConfiguration {
@Value("${db.url}")
private String serverDbURL;
@Value("${db.user}")
private String serverDbUser;
@Value("${db.password}")
private String serverDbPassword;
public DataSource dataSource() {
return new SingleConnectionDataSource(serverDbURL, serverDbUser, serverDbPassword, true);
}
}
:
@Configuration
public class ContextConfiguration {
@PostConstruct
public void getContextConfiguration(){
ConfigServiceResponse configurations = configurationServiceClient.getConfigurations(configurationEnv);
Properties properties = generateProperties(configurations.getConfigParameterList());
MutablePropertySources propertySources = env.getPropertySources();
propertySources.addFirst(new PropertiesPropertySource("APPLICATION_PROPERTIES", properties));
}
}
はまた、私はデータソースを設定するためのJavaクラスを作成しました: 私はこの仕事をしてJavaクラスを作成しました。私がSpring Dataに移行するまで。アプリが起動している間、私は依存関係を追加した後
compile("org.springframework.boot:spring-boot-starter-data-jpa")
が、私は例外を見ることができます:私はちょうどGradleの構成に依存関係を追加
エラー名「persistentConfiguration」でBeanを作成: インジェクションのautowired依存関係は失敗しました。ネストされた例外は java.lang.IllegalArgumentExceptionがある:私は、アプリケーションが問題なく起動し、依存関係を削除した場合、「値に$ {} db.url
をプレースホルダ 'db.url' を解決できませんでした
。春はそれがとても似PersistentConfiguration
にDependsOn
annotationを追加し、あなたのContextConfiguration
最初に処理する必要があります知ってもらうためには、クライアントを設定しても、起動されていなかったデータを得るためにそれを呼び出す前のクラス
ありがとうございました!それは助けになった – migAlex