Exposed Domain Object implemented with Spring Aspect Transaction Control + AspectJ
This application was designed and implemented as my first web app following the DDD principles. There are some interesting issues to solve. I had the domain models exposed to the presentation layer. No facade!??? Yeeeeaah, but not exactly. I did not see the similar design at other places yet. Which has no facade in front of domain models, no facade between presentation and business layers. I can imagine the reaction from people who are so used to facade. Spring+AspectJ allow you have this design. Using domain object that has the supporting DAO injected and letting "spring's annotation transaction aspect" handles the transaction. It can work. Although, using Spring+AspectJ can implement this design, it doesn't necessarily mean this design is good for all applications. An evaluation needs to be done. Here are the pros and cons . Pros: Faster development. It accelerates the development. No Facade for the exposed domain model. When a domain object is a natural entry point...