在application.cfc FW1

时间:2019-02-25 12:16:08

标签: dependency-injection coldfusion fw1

我在FW1中有一个测试应用程序。目前,我正在提供测试服务和DAO。例如Model / services / test.cfc和Model / DAO / testDAO。在这里我要在application.cfc上设置数据之一。我如何在应用程序cfc中注入一些服务/ DAO。我已经尝试通过遵循Creating FW/1 Service in application.cfc来做到这一点。但始终面临以下问题。

enter image description here

我想在我的应用程序cfc文件中调用我的services / test.cfc或DAO / testDAO。给一个想法,并提前感谢!

2 个答案:

答案 0 :(得分:1)

在看不到您的代码的情况下,这里有些地方似乎不正确...

  1. 正如Bernhard所说,您需要立即在组件块内部声明属性。
  2. 确保在组件声明中包含accessors="true"属性。
  3. 确保您根据配置DI / 1的方式引用服务。我看到您在test.cfc文件夹中有services。我假设您将属性引用为testServices,则将DI / 1设置为以这种方式进行映射。否则,按照惯例,将以testtestService的形式进行访问。参见:Basic DI/1 Conventions
  4. 我找不到备份源,但是,我有99%的肯定您将无法从setupApplication()访问您的服务/ DAO。这有点像鸡/蛋的方法。

可以使用其他生命周期方法之一,例如before()setupRequest()进行此调用。但是,根据您的用例,我会重新考虑您的方法。正如詹姆斯在回答中提到的那样,这不是常见的操作顺序。如果您需要每个请求的可用数据,或者需要访问用于常规处理的辅助方法,那么我认为这对您有用。除此之外,除非每次确实需要此服务,否则最好将其注入仅隔离到应用程序中需要它的控制器。最终很难不知道你的意图就说。

答案 1 :(得分:0)

在FW / 1中,服务进入每个控制器,而不进入application.cfc。您需要将它们移到那里。