Генри,
Я бы написал CFC 'DIManager' для управления моими собственными зависимостями и сохранил 'DIManager' в области приложения, используя onApplicationStart (), чтобы он был доступен для жизни приложения.
Каждая служба будет отвечать за создание переходных процессов, которые она обслуживает, как вы рекомендовали в своем вопросе.
Я бы предпочел использовать методы кэширования ColdFusion 9s в моем «DIManager» для управления сохранением синглетонов, так как я ожидаю еще большей поддержки механизмов машинного хранения по мере развития ColdFusion, и вы можете определить профили для каждого синглтона, чтобы некоторые истекает через некоторое время, в то время как другие живут для жизни приложения. Это обеспечит больший контроль, чем использование области применения. Однако профиль может поместить объект в кластерную область, область сервера и т. Д., В зависимости от конкретной задачи.
Я почти прошел этот путь для проекта, который я собираюсь завершить, но решил не изобретать колесо и просто пошел с ColdBox, поскольку он обладает фантастическими способностями кеширования. Я должен также добавить, что команда ColdBox почти достигла своей цели - разбить фреймворк на отдельные блоки. Последняя отдельная часть - это WireBox, который должен быть выпущен в ближайшее время - так что, если у вас есть ограничения на использование фреймворка, например, MVC или AOP, вы можете написать свое приложение по-своему и при этом использовать WireBox или другие замечательные фреймворки IoC, уже существует (как тот, который вы использовали:).
Надеюсь, это поможет.
Я с нетерпением жду и других ответов.