#coldfusion #application.cfc
#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>
Ответ №1:
Псевдоконструктор Application.cfc выполняется при каждом запросе.
По сути, за кулисами экземпляр Application.cfc создается при каждом запросе, и этот экземпляр ведет себя точно так же, как и любой другой экземпляр CFC: выполняется бит псевдоконструктора — материал внутри тегов CFCOMPONENT, но без каких-либо объявлений CFFUNCTION / function .
После запуска псевдоконструктора выполняются любые подходящие методы обработки событий / перехватчика, например: onRequestStart() .
ПРИМЕЧАНИЕ: вы могли бы очень легко проверить это самостоятельно, просто введя что-то там. Он будет отображаться на экране при каждом запросе (сделайте его вызовом GetTickCount() или CreateUUID(), чтобы вы могли видеть его изменение).
Комментарии:
1. Я продолжаю видеть «NB:» повсюду. Что это означает?
2. @Adam: «NB:» означает «Nota bene» (латинский) или «Notez bien» (французский) и означает «Пожалуйста, обратите внимание:»
Ответ №2:
я думаю, оценивается каждый раз, когда запрашивается страница.
вставьте их в Application
область видимости в onApplicationStart()
но, честно говоря, fileSeparator?? Просто используйте /
, он будет работать на ОС Windows и * nix просто отлично. 🙂
Комментарии:
1. Разделитель файлов гарантированно будет работать до тех пор, пока JVM поддерживает его. Я знаю, что это маловероятно, но вы просто никогда не знаете, не будет ли какая-либо версия Windows или другой ОС, на которой это приложение может работать в будущем, поддерживать его.