This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I read the last edition of Spring In Action and was greatly impressed with it.
I don't work directly with Spring and my interest is to compare it to alternatives from an architectural perspective?
I have a few questions:
Say you have the classic requirement to change the look the feel for different users in a CMS.
You have a choice Spring themes of JSF / Facelets. In a JSF / Facelets architecture you could just store references to CSS files as variables that were in backing beans and then resolve this as a dynamic property in a JSF page. Seems very simple. If I use themes I need to know about a lot of specific configuration and it just seems a more clunky wa of doing it. What's your preference for dynamic look and feel and why?
JSF is now pushing facelets and not JSPs as a view technology. Spring is still pusing JSP as the default technology. Why is this? JSPs are a bit clunky and not good for promoting a true view layer (with no controller logic sneaking in).
Spring originally started out as an alternative to EJB because the earlier EJB specs were way too clunky and nearly everyone went for Servlet centric architectures.
Now, EJB has got much simplier (especially with the advent of CDi) and Spring in an effort to p[rovide more and more features looks to be getting clunkier and clunkier. To even do a simple Hello World requires Apache jars not contained in Spring. Do you think there's a danger that Spring could be forgetting about it's original intent to simplify rather than to complicate things?
The JSF model is much component based; whereas Spring MVC is much more request based. Which do you think is a better model and why?
If you were asked for the number one killer feature from spring what would it be?
Reason I ask this is because a lot of what Spring does: Aspects, JMX seem like they can be achieved without it.