I'll put together a more robust sample application including this, CF Template and some of the other stuff I'm working on tomorrow.
Biggest issues: config file doesn't use XML and this requires a base class with an init() method and an addObject() method. If anyone liked the concept but wanted XML config, I might do that just to learn how to do it, but I don't need it for my use case. If anyone doesn't like base classes (and there are plenty of good reasons not to), this isn't the project for you.
No AOP yet (hopefully in the next week or two if I get a moment), no remote bean generation planned until I get the time to play with Flex, and this uses setter rather than constructor injection (ColdSpring supports both - this never will) so it loses the clearly documented "requirements contract" in its objects init methods (although they just get moved to the LightWire config file so I don't see that as an insurmountable problem).
I'm also thinking this isn't thread safe, so I'll have to test that and fix it over the next couple of days if it is an issue.
This is not a proven, tested framework like ColdSpring. It does show how easily you can write your own naive DI/IoC engine using setter injection and object based mixins (LightWire is 159 lines including spacing, commenting and brackets on their own lines. The two required base methods add 15 additional lines, so we're talking under 200 lines of code fully loaded excluding the config file).
Let me know if you like it. Let me know what sucks (and whether it could be fixed or if it is a fundamental limitation of the approach). And finally let me know if anyone sees anyvalue in playing with this at all. I've scratched my itch, so I'm back to application generation, but if anyone sees a niche for this, let me know and I'll tidy things up, add some features, provide documentation and a sample application and will release it as a mini-project.
[update] In case it isn't obvious, while I've initialized LightWire in index.cfm in the request scope, in a real application, you'd initialize it in the application scope as you would want your singletons to persist between requests.