I am trying to get my head around ColdBox and ColdSpring (manly ColdSpring) so please be kind and any example code with comments would be much appreciate.
My question I have a CFC called model/common.cfc This CFC contains all my SQL code that interacts with the database. However in common.cfc I currently use the following code inside common.cfc on init() to get my DNS details... <!-------- CONSTRUCTOR --------> <cfproperty name="dsn" type="coldbox:datasource:DBDetails" scope="instance"><!---inject datasource---> <cfscript> instance = structnew(); </cfscript> <cffunction name="init" access="public" returntype="any" output="false"> <cfargument name="dsn" type="any" _wireme="coldbox:datasource:DBDetails" /> <cfreturn this> </cffunction> I can then call it anywhere inside common like so #instance.dsn.getName()# Now this works fine, but wanting to expand my knowledge I have decided to introduced ColdSpring (no experience of it before) I understand why I would use an IOC so I wanted to start simple. I want to replace the above code and inject the DNS details into common.cfc and use âoneâ bean for all. I have followed the documentation on CB but am struggling mainly because of my understanding I think. Here is what I have so far.... I created my coldspring.xml (below) what I think it should do is inject DNS into UserService.cfc this cfc is then called by common (userGateway). then in my handler i can just called the one bean, right... coldspring.xml... <beans> <bean id="coldboxFactory" class="coldbox.system.extras.ColdboxFactory" /> <bean id="ConfigBean" factory-bean="ColdboxFactory" factory-method="getConfigBean" /> <bean id="dsnBean" factory-bean="ColdboxFactory" factory-method="getDatasource"> <constructor-arg name="alias"> <value>DBDetails</value> </constructor-arg> </bean> <bean id="userGateway" class="model.Common" /> <bean id="UserService" class="model.UserService"> <property name="dsnBean"> <ref bean="dsnBean" /> </property> <property name="ConfigBean"> <ref bean="ConfigBean" /> </property> </bean> </beans> I assumed this would allow me to access dns inside common.cfc but it does not. userservice.cfc <cfcomponent name="User Service"> <cffunction name="init" access="public" returntype="any" hint="Constructor."> <cfreturn this /> </cffunction> <cffunction name="getUserGateway" access="public" returntype="any" output="false" hint="Return the UserGateway."> <cfreturn variables.instance['userGateway'] /> </cffunction> <cffunction name="setUserGateway" access="public" returntype="void" output="false" hint="Set the UserGateway."> <cfargument name="userGateway" type="any" required="true" hint="UserGateway" /> <cfset variables.instance['userGateway'] = arguments.userGateway /> </cffunction> <cffunction name="setDSNBean" access="public" returntype="void"> <cfargument name="DSNBean" type="Any" required="true"/> <cfset variables.dsn = arguments.DSNBean.getName()> </cffunction> <cffunction name="setConfigBean" access="public" returntype="void"> <cfargument name="configBean" type="Any" required="true"/> <!--- <cfset variables.mailName = arguments.configBean.getKey("mailUsername")>---> </cffunction> </cfcomponent> I dont know what to do in common.cfc to pull it... any help/examples on what I need to do here or is my understanding of what I am doing all wrong? If you were doing this how would you go about it, i learn best from examples (visual keys) Thanks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Want to reach the ColdFusion community with something they want? Let them know on the House of Fusion mailing lists Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:324850 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4