我有一个使用上下文相关数据源的应用程序。目前,我将数据源信息保存在
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/