2010-01-25 12 views
10

No he usado Spring, pero parece que es bastante popular. Escuché que ofrece formas alternativas de hacer las cosas, como poder consumir servicios web RESTful. ¿Alguien sabe si ofrece características similares a las introducidas por JSF 2, o estaría yo comparando manzanas con naranjas?Primavera en comparación con JSF 2

Editar:

Gracias por la información. Comparando Spring MVC con JSF 2, ¿habría ventajas de usar Spring MVC en lugar de JSF 2?

Gracias.

+3

Realmente quiere comparar "Spring MVC with JSF 2", no "Spring with JSF". – BalusC

Respuesta

16

Manzanas a las naranjas.

Spring es un marco de aplicación que integra la inyección de dependencias, la programación orientada a aspectos y muchas otras cosas en una pila. Su comparación de manzanas ásperas a manzanas sería J2EE.

JSF es una tecnología de capa de visión, basada en el paradigma Model View Controller. Su comparación aproximada de naranjas con naranjas sería Spring MVC. Ambos pueden usar diferentes tecnologías de visualización (es decir, Facelets, JSP, Velocity, etc.) y ambos se integran extremadamente bien en sus respectivas pilas.

- En respuesta a la nueva pregunta -

He usado JSF2 una buena cantidad (tanto como el que puede dada su corta edad) y me parece que sea un muy buen marco. Arregla muchas de las deficiencias de JSF 1.2 y sentí que JSF 1.2 también era una buena opción para mí.

No tengo no usé Spring MVC mucho pero he visto algún código que otro desarrollador ha hecho.

Mi (muy) limitada experiencia es que Spring MVC se siente un poco más como un marco de "acción" mientras que JSF se siente más como un marco de "componentes". Personalmente, creo que los marcos de componentes son una extensión más natural de OOD, lo que me atrae y la forma en que escribo el software.

+0

Genial, gracias por la entrada. –

4

Spring MVC es un marco web dentro del marco Spring. Sí proporciona características como las de JSF 2.0:

  • ajax-apoyo
  • validación
  • dependencia de inyección
  • etc.

Sin embargo, se puede usar un muelle (no Spring MVC) junto con JSF 2.0, con spring proporcionando la inyección de dependencia, aop, mecanismos de gestión de transacciones y JSF proporcionando la capa web.

+0

¿Tiene un buen enlace que describa esta configuración? – rustyx

+0

busque la aplicación de petclinic. O el invernadero. – Bozho

+0

¿Cuáles son las ventajas de usar Spring con JSF? – Shekhar

2

JSF es solo la capa de visualización del MVC y deberá utilizarse con otras tecnologías como Spring/Hibernate o EJB para un MVC completo.

Spring (no es el Spring MVC) es la capa controladora del MVC y, como digo, se puede usar con algo como JSF (Struts, JSP/Servlets, etc.) y algo así como Hibernate.

He estado usando Spring MVC durante aproximadamente 6 meses, aunque probablemente no sea la versión más latil de SpringMVC. Me ha parecido un poco molesto tener que lidiar con tantos XML. Todos los beans gestionados y DAO tienen una configuración XML. También todo parece tener que pasar por un método llamado onSubmit().

JSF con algo como EJB es mucho más simple en mi opinión ... Todo se puede hacer uso de Anotaciones por lo que simplemente usar @ ManagedBean = Thebean en su bean de respaldo y en su puesto JSF {} thebean.param y tiene acceso a los datos del bean de respaldo. También puede usar los beans de Session de su EJB ya que los beans de respaldo para JSF tienen acceso directo al bean de la entidad DAO (capa de modelo). De nuevo simplemente usando la anotación @Entity y la clase EntityManager

También me gusta la forma en que puede establecer sus propios métodos de acción para que pueda tener un método en su bean llamado TheBean.addDetails() y llamarlo el JSF con theBean.addDetails() en lugar de todo pasando por un método como con Spring MVC.

JSF como digo es solo la capa de vista de MVC, personalmente me gusta usarlo con EJB, ya que esto te da MVC completo todo desde Suns J2EE.jar por lo que no hay problemas para asegurarte de que tienes las versiones correctas y no se requiere configuración.

JSF 2.0 es mucho más que JSF1.2, que siempre se sintió como la mitad de un trabajo que con EJB3.1 que no es como EJB2.x y es incluso mejor que EJB3.0. Para mí JSF2.0 con EJB3.1 es tan simple y fácil de desarrollar y todo es muy transparente.

+2

No estoy de acuerdo con que JSF sea "solo una capa de vista". Se puede usar como una aplicación MVC independiente como buena. Sin embargo, es cierto que JSF se usa a menudo como la mitad de "M (MVC) C". Yo, por cierto, no considero a Spring como controlador, sino como inyector. Pero no sé qué tan bueno publicar una respuesta explícita sobre eso. – BalusC

+0

Interesante, gracias por la información. Sí, he estado disfrutando mucho de JSF 2, pero siento curiosidad por saber qué más hay por ahí.Con JSF 2 puede hacer que JSF sea principalmente la capa de vista, pero el código del modelo y del controlador también puede colarse ... –

+1

Ese Spring MVC requiere una gran cantidad de XML que no es exacto después de la introducción de Spring Spring de la configuración basada en anotaciones. –

1

Estuve trabajando con JSF 1.2 + JSF managedbeans durante 2 años y ahora he comenzado a migrar a JSF2.0. Después de conocer Spring y Spring MVC, siento que una JSF (1.2 o 2.0) + Spring (servicio y no MVC) + Hibernate será una muy buena arquitectura.

0

JSF2 se puede utilizar como backend y como frontend, y también tiene una mejor inyección de la dependencia, navegación y validación que Spring MVC.

El resorte en sí mismo se puede utilizar como marco empresarial en lugar de EJB3.1/EJB3.1 mejor /, pero como frontend JSF2 con primos no tienen alternativas.

1

Una de las peores partes de Spring billions configuraciones, incluso en Spring3 debe tener archivos de configuración ... Por ejemplo, tiene servicio web SOAP y desea integrar Spring como backend ... y puede encontrar lo que no puede inyectar Spring beans en el servicio web regular ... y también debe cambiar sus servicios a Spring SOAP ..... Spring3 usó anotaciones, pero cada vez que adivina qué anotación usar para abrir o cerrar algunos servicios, le molesta ... En su lugar, puede tener solo EJB3.1, que es sencillo, y como desarrollador Java puede disfrutarlo. Noté que muchos fanáticos de Spring ya no conocen a EJB3, por eso les gusta Spring :)))

Cuestiones relacionadas