A few months ago I asked for ideas on project management, and you all gave me some great suggestions of tools and books to check out. Now I'd like to hear if anyone has recommendations for a resource that explains how to tie the web application together -- what I would call "architecture".
I'm running into questions like - Where should I put my DAOs? In the session or in the pages? And what's a reasonable relationship between DAOs and domain objects? - What are some examples of reasonable package hierarchies? - What kind of objects should live in the application and what should live in the session? - Should I put constants in a Constants.java or in an xml file? - Spring wants to use interfaces and Hibernate wants to use concrete classes -- how do I reconcile these? Effective Java and Design Patterns have been great resources for learning how to solve specific programming problems. Now I'd like to find information on how to build the layout of the application in a way that is effective, simple, and maintainable. Any suggestions?