我有一个使用上下文相关数据源的应用程序。目前,我将数据源信息保存在

reqeust.DB.Datasource = "DatasourceName";
request.DB.Username = "DatasourceUsername"
request.DB.Password = "DatasourcePassword"


然后我根据上下文覆盖变量,因此每个cfquery标记都具有属性datasource =“#request.DB.Datesource#” ...等等...

我想开始转向更多以CFC为中心的框架,例如Coldbox,但是我只是看不到它如何工作。

我是否需要将数据源对象传递到CFC的init语句中?这似乎是一个超级PITA。

最佳答案

使用CF9,可以将Application.cfc中的this.datasource作为默认数据源。不幸的是,它似乎没有办法设置用户名/密码

要么

A.)使用依赖注入框架,例如ColdSpring(仅适用于单例服务),Lightwire或Coldbox自己的DI解决方案(Wirebox)。并通过init构造函数或设置器注入数据源/用户名/密码。

B.)在<Datasources>中设置Coldbox.xml.cfm,请参见:http://wiki.coldbox.org/wiki/ConfigurationFile.cfm

<!--Datasource Setup, you can then retreive a datasourceBean
   via the getDatasource("name") method: -->
<Datasources>
  <Datasource alias="MyDSNAlias"
                  name="real_dsn_name"
                  dbtype="mysql"
                  username=""
                  password="" />
</Datasources>

关于coldfusion - 在CFC中使用数据源的最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4116697/

10-13 04:26