锁定指向对象实例的ColdFusion应用程序变量

1 cookies coldfusion scope locking

我在CF 9上运行我的应用程序.我创建了一个CFC来集中我的cookie处理而不是散布的所有标签.很简单.它有两个属性(名称,值),并有5个方法(setCookie,deleteCookie,verifyCookie,clearAllCookies和init).

由于我希望此方法在整个应用程序中可用,因此我将此代码放在application.cfc文件的onApplicationStart方法中:

application.oCookie = createObject("com.mycookie").init();
Run Code Online (Sandbox Code Playgroud)

当我需要在任何代码文件中设置cookie时,我就这样称呼它:

application.oCookie.name="testCookieName";
application.oCookie.value="testCookieValue";
application.oCookie.setCookie();
Run Code Online (Sandbox Code Playgroud)

我的问题是:每次执行此操作时,是否需要锁定此代码?如果两个单独的用户在同一时刻访问此代码的页面上,我最终会设置混合cookie值吗?

Hen*_*nry 5

为了使您的oCookie线程安全,它必须是一个单独的(没有状态),只作为一个薄层<cfcookie>cookie范围.

因此,你应该设计你的,com.mycookie以便它接受application.oCookie.setCookie(name, value).并确保您的VAR范围的一切,不要存放在什么variables范围mycookie.

我认为你不需要使用cflock.

如果您还没有,可能需要签出WireBox.