私は、複数のHTTPサービスを呼び出す理由があるSpringブートアプリケーションを構築しています。さまざまなオプションを使用してクライアントを設定できるようにしたいと考えています。ソケットのタイムアウトに加えて、デフォルトを持っています。デフォルトと複数のオーバーライドを持つSpring構成Bean
理想的には、私はこのようなプロパティを指定することができます。
client.default.socket-timeout=500ms
client.slow-service.socket-timeout=1000ms # it's a bit slower
client.fast-service.socket-timeout=100ms
のような単純なクラスを行います。その後、
class ClientConfiguration {
@Value("${client.<client-name>.socket-timeout:${client.default.socket-timeout:30}}")
int socketTimeout;
}
と注入することができる:通常
@Inject
public MyService(@Named("slow-service") ClientConfiguration slowServiceConfig) { ... }
私は設定します私の設定は@Value
経由ですが、鍵をパラメータ化する方法はないようですses。特にBeanの名前に基づいていません。私は、キー名を作成してまたは他の手動アプローチからそれを取得するために、大量のボイラープレートを書くのは避けたいです。
このユースケースに対処するには、Spring(4.3.0)またはSpring Boot(1.4.0.M3)には良いパターンがありますか?
あなたが今持っているものと期待しているものの例を追加してください。 – reos