В этом примере у меня есть объект модели с именем test.cfc
, который имеет зависимость testService.cfc
.
test
использует WireBox для внедрения testService
через объявление свойства. Объект выглядит так:
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" );
}
}
Проблема в том, что WireBox не вводит testService
до тех пор, пока не сработает метод конструктора init()
. Итак, если я запустил это в своем обработчике:
prc.test = wirebox.getInstance(
name = "test"
);
Я получаю следующее сообщение об ошибке: Error building: test -> Variable TESTSERVICE is undefined.. DSL: , Path: models.test
Ради здравого смысла, если я изменю test
так, чтобы на testService
ссылались после создания объекта, все будет работать нормально. Проблема кажется изолированной для методов конструктора.
Как я могу убедиться, что на мои зависимости можно ссылаться в моих методах конструктора объектов? Спасибо за твою помощь!