5

この例でtest.cfcは、依存関係を持つ というモデル オブジェクトがありますtestService.cfc

testtestServiceプロパティ宣言を介して WireBoxを挿入します。オブジェクトは次のようになります。

component {

     property name="testService" inject="testService";

     /**
     *  Constructor
     */
     function init() {

         // do something in the test service
         testService.doSomething();

         return this;

     }

 }

参考までに、いくつかのテキストをダンプするtestService単一のメソッドが呼び出されています。doSomething()

component
     singleton
{

     /**
     *  Constructor
     */
     function init() {

         return this;

     }


     /**
     *  Do Something
     */
     function doSomething() {

         writeDump( "something" );

     }

 }

testService問題は、コンストラクター メソッドが起動するまでWireBox が挿入されないように見えることですinit()。したがって、ハンドラーでこれを実行すると、次のようになります。

prc.test = wirebox.getInstance(
     name = "test"
);

次のエラー メッセージが表示されます。Error building: test -> Variable TESTSERVICE is undefined.. DSL: , Path: models.test

念のため、オブジェクトの構築後に参照されるtestように変更すると、すべて正常に動作します。testService問題は、コンストラクター メソッドに分離されているようです。

オブジェクト コンストラクター メソッドで依存関係を参照できるようにするにはどうすればよいですか? ご協力ありがとうございます。

4

1 に答える 1