2016-05-30 5 views
2

私は、インターフェイスClusterHelperとそのインターフェイスを実装するクラスZKClusterHelperを持っています。 ZooKeeperConfigは、動物園のオブジェクトのインスタンスを作成するクラスです。さて、ClusterHelperFactoryに我々は持っている:実行時にAutowiredオブジェクトを変更する

@Autowired 
ConfigAccessor configAccessor 

@Bean 
ClusterHelper clusterHelper(){ 

    logger.info("Returning zookeeper cluster herper"); 
    ZKClusterHelper zch = new ZKClusterHelper(); 
    zch.setZookeeper((ZooKeeperConfig)configAccessor); 
    ch = zch; 

    return ch; 
} 

私は今、私はZooKeeperConfigクラスのいくつかのフィールドの値を変更する場合はクラスB

@Autowired 
ClusterHelper ch; 

にオートワイヤリングしています。 クラスBでautowiredのClusterHelperに反映させるにはどうすればいいですか?

答えて

1

ここでは動的にする必要はないと思いますautowiringここにあります。別のサービスBeanを作成することをお勧めします。を手動で作成する代わりにを挿入してください。

デフォルトではスプリングの豆はスコープsingletonを持つことを考慮してください。

+0

こんにちは、私はあなたを得ていませんでした。私がサービスBeanを作るべきものについては? – user3587856

+0

これは、 'ZKClusterHelper zch = new ZKClusterHelper();'を実行する必要がないことを意味します。 'new'でBeanを作成する代わりに、別のBeanを作成して注入(使用)する必要があります。 –

関連する問題