2016-12-07 16 views
2

XMLに設定されているすべての(またはほとんどの)Beanを持つ既存のSpring MVCアプリケーション(Spring以外のアプリケーション)があります。これをSpring Cloud Config Clientとして使用したかったのです(設定サーバーとして機能するSpring Bootアプリケーションがあります)。Spring Config Client @RefreshScopeに相当するXML

これに関して、リフレッシュスコープを持つXMLのBeanを設定することに相当するのは、@RefreshScopeアノテーションと同じです。この上の任意のヘルプが非常

+0

コアの問題は、「リフレッシュ」XMLで豆(@RefreshScope注釈に相当)を作成するための最良の方法は何かということです。 –

答えて

0

を理解されるBeanとしてRefreshScopeを設定し、範囲=「リフレッシュ」が、豆を(アクチュエータから)/リフレッシュエンドポイントをpeforming後に新しい値で反映されていないことを見ることができる

を使用してみました@ RefreshScopeは別のスコープにすぎません。 RefreshScopeクラスがどのように実装されているかを見てください。それは "リフレッシュ"という名前の新しいスコープを作成しています。

つまり、このようにXML設定で新しいスコープを使用できるはずです。

<bean id = "..." class = "..." scope = "refresh"> 
</bean> 
0

他の回答で指摘されているように、「リフレッシュ」のスコープは単なる別のスコープです。しかし、XMLでプロパティを定義して注入すると、Beanプロパティが/ refresh呼び出し後に新しい値で更新されないという問題があります。問題の詳細here。しかし、それぞれの/リフレッシュコール後にBean(つまり、実際にプロキシ)がインスタンス化されますが、 'refresh'スコープBeanを注入するBeanは異なるスコープにある可能性があるので、 "aop:scoped-proxy"まあつまり

<bean name="xmlValueBean" class="me.fahimfarook.xml.XMLValueBean" scope="refresh"> 
    <aop:scoped-proxy proxy-target-class="true" /> 
</bean> 
0

あなたは、人々がすでに指摘したように、あなたはまた、スコープを自分で実装する必要がコア春(も春MVC)で@RefreshScopeを使用する場合。

私も同じジレンマを抱えていましたが、私もそれについてのブログを書いています。すべての実装の詳細を見つけることができます。

必要に応じて、Spring MVCアプリケーションでSpring起動設定サーバーを使用することもできます。

@RefreshScope for Spring MVC

関連する問題