Spring vs Seam (La guerra ha empezado)

Como primer contrincante tenemos Spring, un framework muy extendido, al que le empezaban a pesar las arrugas, y que tras su última actualización ha vuelto a rejuvenecer.

Como segundo contrincante tenemos Seam, un framework joven, y con una nueva filosofía.

He de reconocer que cada vez me gusta mas Spring, cada vez se parece más a Jboss Seam :p. Os dejo algunos ejemplos en los que el nuevo Spring ha seguido el camino marcado por Seam, abandonando los «desagradables» xmls de mapeo declarativo, para ofrecer la misma funcionalidad con anotaciones.

Gestión de transacciones con Spring:

@Transactional(readOnly = false)
void postComment(long articleId, Comment comment);

Gestión de transacciones con Seam:

@Transactional
void postComment(long articleId, Comment comment);

Publicación de Manager JSF Beans con Spring 2.5:

@Controller(”PersonaController”)
@Scope(”session”)
public class PersonaController{
..
}

Publicación de Manager JSF Beans con Seam:

@Name("personaController")
@Scope(SESSION)
public class PersonaController{
..
}

La verdad es que revisando una a una las nuevas anotaciones y funcionalidades que proporciona Spring, solo me queda alegrarme por el parecido. Estoy seguro que con esta competencia ganamos todos, por ahora estoy del lado de Seam ya que su enfoque resulta menos forzado y mucho mas alineado con los futuros Web Beans, pero quien sabe lo que nos depara el futuro.

Los que quieran profundizar en las diferencias,  pueden ver Framework Deachmatch: Spring vs Seam[pps]

También se han publicado una serie de artículos muy interesantes sobre como integrar Spring con Seam.