This is an opinionated blog as I do favor considering Spring Framework in the various tiers of a typical web application. I consider the framework because of its features, ease and above all good enthusiastic community and activity surrounding it as a whole. While doing this evaluation and recommendation, I have put the year, as technology changes are so fast, obsolesce is down the lane and I do want to make sure that it is reviewed in a timely manner so that rather than giving a wrong recommendation, make recommendation to some extent useful and ideal for a typical web application. The whole technology stack can be summarized as below:
- Spring MVC (Web Framework)
- Thymeleaf / Apache Tiles (View framework instead of using JSP directly)
- SiteMesh (Decorator – Filter for layout creation/maintenance)
- JQuery (JS)
- JQuery-UI (JS) – Theming (More for productization)
- Dandelion (For datatables) – JSF datatables are heavy
- Bootstrap (CSS) or Blueprint (CSS)
- D3.js – for graph representations
- Modernizr (Browser detection and grace degradation in case you are using HTML5 and CSS3)
- HDIV – to tick all security requirements in your application from a single point. At this point in time, using Spring MVC along with Thymeleaf is not supported by HDIV, but its not far away. So if you want to use HDIV, Spring MVC along with Apache Tiles should be used.
- yepnope.js (Script/resource loader)
- Custom tags will be written and used as much as possible bringing in component based development
- Spring Framework
- Consider using Spring Data – Different profiles
Things to be considered as a whole:
- WebJars for managing JS and CSS libraries as jars
- Caching using Ehcache
- Multiple DB support (development can be even considered using in-memory database)
- Consider using Datatables4J
- Reason for each technology/framework selection
As detailed earlier, the reasons that I consider might be fully opinionated/biased, please let me know your suggestions, after careful consideration looking at its advantages/disadvantages, the technology stack will be considered and changed accordingly. For the year 2013, I consider this blog as evolving as possible according to the suggestions that I get from the readers of www.javacodebook.com.
I will have another blog written very soon (2 days’ time) giving the reasons for each choice which I made so that while you do a selection in your project, you do have enough reasons and points to be given to your management.
Please visit Part II of this blog in here. Page Visitors: 439