What are the advantages/disadvantages of Seam over Spring? What are the advantages/disadvantages of Seam over Spring? spring spring

What are the advantages/disadvantages of Seam over Spring?


Why Spring?

  • Cleaner code
  • Streamlined application configuration
  • Nice integration with popular open source products
  • First class AOP support
  • Enterprise-scale security: Acegi
  • Highly flexible MVC
  • Abstracted data access (JDBC is OK)
  • Enterprise Java without EJB
  • Testing is easy

Why Seam?

  • Merge Java EE 5 standards (EJB 3.0, JPA, JSF, Annotation) seamlessly
  • Stateful by design
  • Bijection
  • Integrated Ajax (ICEfaces and Ajax4JSF)
  • Business process integration (jBPM)
  • Business rules integration (Drools)
  • Workspace management
  • Deliver complete stack (from JBoss & RedHat)
  • Seam Text and EL enhancements
  • Probably will be a standard (JSR-299: Web Beans)

From Framework Deathmatch: Spring vs Seam. Thomas Wiradikusuma (Spring). Joshua Jackson (Seam). Java User Group Indonesia. JaMU 07.03. March 17, 2007 power point presentation here


although seam does have many advantages over spring, there is a magic word that really is worth paying attention to and this is PERFORMANCE!!! if you are not worried about performance issues I would go with seam. From the other hand if you want your application to be as fast as possible and your hardware is limited I would use spring. I am not saying that you can not develop fast applications with seam, but in order to do this you really need to know what you are doing. I have used both of them (i am not a guru in any of them) and what I found out is that although spring needs more effort to build what you want, at the end the result is more flexible and is performing better. I do not think that there is something that can be done in one framework that it can not be done in the other, saying that, remember that I am not an expert to any of those.


Seam will give you a pretty, ah, seamless, integration between the components that make up the seam stack. All very nice as long you keep within that stack, and within the seam model and foing things. It all starts to look a little less convincing as soon as you start doing something unusual, though.

If it's not too much of a generalisation, Seam is very "microsofty" in that regard. This isn't a bad thing, it's just a stylistic thing. Spring is more open-ended and takes more effort to get going, but it's ultimately more flexible, and a lot more open.