2011-07-23 6 views
0

CDIでは、Beanをどのように設定するのですか?CDI:Beanの設定をどのように処理するのですか?

class JawaBotApp { 
    private void init(String configFilePathString) throws JawaBotException { 
     ConfigBean cb = new JaxbConfigPersister(configFilePathString).load(); 
     JawaBotApp.jawaBot = JawaBot.create(cb); 
    } 
} 

class JawaBot { 
    public static JawaBot create(ConfigBean cb) throws JawaBotException{ 
     JawaBot bot = new JawaBot(); 
     bot.applyConfig(cb); 
     bot.init(); 
     return bot; 
    } 
} 

がどのように私は両方がCDI豆かもしれないので、それを変換します:

はのは、私はこのコードを持っているとしましょうか?

私はConfigBeanが注入されますので... JaxbConfigPersisterを書き換えるか、ラッパーオブジェクトを作成する必要があると思われる、それは非静的持ち、それを書き換えるためにあまりにも多くの作業が必要になることが、@Producescreate()に注釈を付けることについて考え何のためにも。 より良いアプローチはありますか?そして、あなたは自分の設定を表し@JawaConfig文字列のどこかを生成する必要が

class JawaBot { 
    @Inject public JavaBot(@JawaConfig String configFilePathString) { 

     ... 
    } 
} 

:よう

答えて

2

何か。これは、代替のようなもので嘲笑されたり、あなたにdiff設定を与えるために特化したり、他の外部ファイル/設定を見ているちょっとした愚かな@Producerになる可能性があります。

他のすべての設定ではなく、@JavaBotを注入するだけで、注入されたコンストラクタ内にすべてが存在します。

+0

いいですね、試してみましょう。 –

関連する問題