In my latest ambitious open source project I was faced with challenge to write data access layer for Spring and non-Spring application. What did I do? I just switched everything to Spring. Even desktop application of my project is driven by Spring. You just cannot go wrong if you use Spring.