Spring помогает Вам понять и даже поощряет модели DI. Однако я не полагаю, что у Вас должен быть Spring.
у Вас могут быть конфигурационные файлы в Java, которого можно отладить, осуществить рефакторинг и выполнить анализ кода.
я предполагаю, что Вы помещаете эти конфигурационные файлы Java в другой пакет, но они в других отношениях эквивалентны конфигурационным XML-файлам. Можно даже загрузить их файл динамично, если это важно.
I work on MongoDB so I'm biased that way, but I think it is a nice combination of the things you're used to with an RDBMS (like dynamic queries and secondary indexes) and the performance and scalability of a key-value store.
Cassandra has a nice distributed model but afaik doesn't support secondary indexes. The document data model support by Mongo and Couch also allows for a little bit more complexity than the tabular model Cassandra uses.
One of the big differences between Mongo and Couch is the way queries are constructed. Couch uses a cool map/reduce mechanism, but your queries must be defined in advance. Mongo uses a more traditional dynamic query model that is more like what you're used to in an RDBMS.