2016-04-17 6 views
-2

我々はcontext.groovyで更新のApplicationContextまたは単一のBean

class MonetDrop(){ 

    def chance 

    def doDrop(){ 
    println("Your chance to win ${chance} %") 
    } 
} 

Beanを持つ「チャンス」プロパティのための豆と設定値を初期化:私がする必要がある

beans{ 
    monetDrop(MonetDrop){ 
     chance = 50 
    } 
} 

コンテキスト内で「チャンス」変数を​​変更すると、リフレッシュBean 私はxmlまたはjava configも使用でき、このBeanを移動して設定ファイルを分離します。 作業中のアプリケーションでconfig(!)が変更された場合、どのようにBeanを更新することができますか? App on Java 1.8/Groovy 2.4.4 + Springboot

+0

ここで、設定を保存していますか? –

+0

@MarcoTedone私の本当の設定作業。私は$ project_dir/configでそれを確認します。どこに問題がないのですか。メインの質問はまだ開いています。 – Snowy

答えて

0

Beanを取得して手動で更新するのはどうですか? @AutowiredBeanFactoryを指定して、指定したbeanを更新しようとするか、または正確なbeanを@Autowiredとして更新してみてください。例えば

chanceが更新されました

@Component 
public class MonetDropUpdater { 
    @Autowired 
    private MonetDrop drop; 

    public void update() { 
     // update drop.chance 
    } 
} 

場合は、MonetDrop#chanceを更新することを忘れないでください。

refreshの別の方法は、この豆は注釈@Refreshです。

最後に、MonetDrop@ConfigurationPropertiesの場合はspring-boot-actuatorを追加すると、spring-cloud-config-clientに更新することができます。

+0

JARとして動作しているアプリケーションの生産時にBeanにアクセスできませんでした。プロパティまたは設定ファイルのみを変更できます。 スプリング・ブート・アクチュエータについて学びます。ありがとう – Snowy

関連する問題