Application.cfc中的组件级属性

时间:2011-09-28 21:05:39

标签: coldfusion application.cfc

如果我在application.cfc中有组件级属性,那么每次页面都会对它们进行评估,还是仅在创建应用程序时对它们进行评估?

<cfcomponent>
    <cfscript>
        this.name = "WARM2_Demo";
        this.applicationTimeout = CreateTimeSpan(1,0,0,0);
        this.setClientCookies = true;
        this.setDomainCookies = false;
        this.sessionManagement = true;
        this.sessionTimeout = CreateTimeSpan(0,0,30,0);
        this.clientManagement = false;
        this.scriptProtect = true;

        this.appDirectory = getDirectoryFromPath(getCurrentTemplatePath());
        this.fileSeparator = createObject("java","java.lang.System").getProperty("file.separator");

         ....

    </cfscript>

    <cffunction name="OnApplicationStart" returntype="boolean">
        <cfscript>
            setupApplication();
            return true;
        </cfscript>
    </cffunction>

        ....

</cfcomponent>

2 个答案:

答案 0 :(得分:4)

每次请求都会执行Application.cfc 的伪构造函数

基本上在幕后,每个请求都会创建一个Application.cfc实例,并且该实例化的行为就像任何其他CFC实例一样:伪构造函数位 - CFCOMPONENT标记内的东西,但是与任何CFFUNCTION /函数声明一样 - 是运行

运行伪构造函数后,将运行任何适当的事件处理程序/拦截器方法,例如:onRequestStart()。

注意:你可以通过在那里输出一些东西来轻松地自己测试。它会在每次请求时显示在屏幕上(使其成为getTickCount()或createUuid()调用,以便您可以看到它发生变化)。

答案 1 :(得分:0)

每次请求页面时都会对

进行评估。我想。

将它们贴在Application

onApplicationStart()范围内

但老实说,fileSeparator ??只需使用/,它就可以在Windows和* nix OS上运行。 :)