Sie sind auf Seite 1von 13

JSF 2 + Hibernate 4 + Spring 4

Introduccin

Saber integrar de una forma segura, confiable y robusta varias tecnologas Java EE no es
una tarea fcil ni mucho menos, tampoco es una tarea imposible, pero es un hecho que
dicha integracin puede resultar compleja y confusa.

En este libro aprenderemos a integrar JSF 2 + PrimeFaces 5 + Hibernate 4 + Spring 4 de


una manera fcil y sencilla, explicaremos a detalle los componentes que hemos
desarrollado en nuestros videos que tienes disponibles gratis en YouTube acerca de dichas
tecnologas. Adems aadiremos nuevas funcionalidades avanzadas que te explicaremos
con lujo de detalle para que saques el mximo provecho de la compra de este libro.

No es suficiente? Aqu vas a aprender cmo crear una aplicacin desde cero paso a paso
con todas las tecnologas ya mencionadas y a entender cmo y para qu sirve cada
tecnologa y en cuales proyectos aplicarlos y en cules no.

La teora que viene en este libro no tiene nada que ver con lo que aprenders en la
prctica, al leer y ejecutar los pasos descritos en este libro te garantizamos que adquirirs
un nivel amplio en los principales frameworks y tecnologas de Java EE.

Sitio Web: http://www.javarevolutions.com


Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.
Qu es Java Server Faces (JSF)

Java Server Faces (JSF) es una tecnologa y framework para aplicaciones Java basadas en
web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa
Java Server Pages (JSP) como la tecnologa que permite hacer el despliegue de las pginas,
pero tambin se puede acomodar a otras tecnologas como XUL (acrnimo de XML-based
User-interface Language, lenguaje basado en XML para la interfaz de usuario)

JSF incluye:

- Un conjunto de APIs para representar componentes de una interfaz de usuario y


administrar su estado, manejar eventos, validar entrada, definir un esquema de
navegacin de las pginas y dar soporte para internacionalizacin y accesibilidad.
- Un conjunto por defecto de componentes para la interfaz de usuario.
- Dos bibliotecas de etiquetas personalizadas para Java Server Pages que permiten
expresar una interfaz Java Server Faces dentro de una pgina JSP.
- Un modelo de eventos en el lado del servidor.
- Administracin de estados.
- Beans administrados.

Qu es Hibernate

Hibernate es una herramienta de Mapeo objeto-relacional (ORM) para la plataforma Java (y


disponible tambin para .Net con el nombre de NHibernate) que facilita el mapeo de atributos
entre una base de datos relacional tradicional y el modelo de objetos de una aplicacin, mediante
archivos declarativos (XML) o anotaciones en los beans de las entidades que permiten establecer
estas relaciones.

Hibernate es software libre, distribuido bajo los trminos de la licencia GNU LGPL.

Sitio Web: http://www.javarevolutions.com


Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.
Qu es Spring

Spring es una plataforma para el desarrollo de aplicaciones Java, con el que puedes crear
una aplicacin web JEE completa, ya que cuenta con varios mdulos que soportan la
estructura completa de una arquitectura JEE. Algunos mdulos muy utilizados son: Spring
MVC, Spring Tiles, para la capa de presentacin. Spring JDBC, Spring IoC, Spring AOP para
la capa de procesamiento.

Si bien las caractersticas fundamentales de Spring Framework pueden ser usadas en


cualquier aplicacin desarrollada en Java, existen variadas extensiones para la
construccin de aplicaciones web sobre la plataforma Java EE. A pesar de que no impone
ningn modelo de programacin en particular, este framework se ha vuelto popular en la
comunidad al ser considerado una alternativa, sustituto, e incluso un complemento al
modelo EJB.

Qu es JAX-WS

Java API for XML Web Services (JAX-WS) es una API de Java para la creacin de servicios
web. Es parte de la plataforma Java EE de Sun Microsystems. Al igual que las otras API de
Java EE, JAX-WS utiliza anotaciones, introducidas en Java SE 5, para simplificar el
desarrollo y despliegue de los clientes y puntos finales de servicios web. Es parte del Java
Web Services Development Pack.

La implementacin de referencia de JAX-WS se desarrolla como un proyecto de cdigo


abierto y forma parte del proyecto GlassFish, un servidor de aplicaciones Java EE de
cdigo abierto. Se llama JAX-WS RI (por Reference Implementation) y se dice que es la
implementacin de calidad de produccin (contrariamente a la implementacin de
referencia antigua que era una prueba de concepto).

Sitio Web: http://www.javarevolutions.com


Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.
Qu es EJB

Enterprise Java Beans (EJB) es una plataforma para construir aplicaciones de negocio
portables, reusables y escalables usando el lenguaje de programacin Java. Desde el
punto de vista del desarrollador, un EJB es una porcin de cdigo que se ejecuta en un
contenedor EJB, que no es ms que un ambiente especializado (runtime) que provee
determinados componentes de servicio.

El objetivo de los EJB es dotar al programador de un modelo que le permita abstraerse de


los problemas generales de una aplicacin empresarial (concurrencia, transacciones,
persistencia, seguridad, etc.) para centrarse en el desarrollo de la lgica de negocio en s.
El hecho de estar basado en componentes permite que stos sean flexibles y sobre todo
reutilizables.

No hay que confundir los Enterprise Java Beans con los Java Beans y esto lo hemos
repetido en algunos de nuestros videos tutoriales. Los Java Beans tambin son un modelo
de componentes creado por Sun Microsystems para la construccin de aplicaciones, pero
no pueden utilizarse en entornos de objetos distribuidos al no soportar nativamente la
invocacin remota (RMI).

Existen tres tipos de EJBS:

- EJB de Entidad (Entity EJBS): Su objetivo es encapsular los objetos del lado del
servidor que almacena los datos. Los EJB de entidad presentan la caracterstica
fundamental de la persistencia:
o Persistencia gestionada por el contenedor (CMP): El contenedor se encarga
de almacenar y recuperar los datos del objeto de entidad mediante el
mapeo de una tabla de la base de datos.
o Persistencia gestionada por el bean (BMP): El propio objeto entidad se
encarga, mediante una base de datos u otro mecanismo, de almacenar y
recuperar los datos a los que se refiere, por lo cual, la responsabilidad de
implementar los mecanismos de persistencia es del programador.

Sitio Web: http://www.javarevolutions.com


Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.
Nota: En la documentacin de java para JEE 5.0, los Entity Beans desaparecen ya que son
remplazados por JPA (Java Persistence API).

- EJB de Sesin (Session EJBS): Gestionan el flujo de la informacin en el servidor.


Generalmente sirven a los clientes como una fachada de los servicios
proporcionados por otros componentes disponibles en el servidor. Puede haber
dos tipos:
o Con estado (stateful): Los beans de sesin con estado son objetos
distribuidos que poseen un estado. El estado no es persistente, pero el
acceso al bean se limita a un solo cliente.
o Sin estado (stateless): Los beans de sesin sin estado son objetos
distribuidos que carecen de estado asociado permitiendo por tanto que se
los acceda concurrentemente. No se garantiza que los contenidos de las
variables de instancia se conserven entre llamadas al mtodo.

- EJB dirigidos por mensajes (Message-driven EJBS): Son los nicos beans con
funcionamiento asncrono. Usando el Java Messaging System (JMS), se suscriben a
un tema (topic) o a una cola (queue) y se activan al recibir un mensaje dirigido a
dicho tema o cola. No requieren de su instanciacin por parte del cliente.

En las nuevas versiones de EJB 3.1, 3.2 y en adelante han salido nuevas caractersticas y
funcionalidades para cada versin de EJBS, mismas que revisaremos a mayor profundidad
en otra ocasin.

Qu es un contenedor de EJBS?

As como cuando compilamos una clase simple de Java, necesitamos una Java Virtual
Machine (JVM) para ejecutarla, necesitamos un contenedor de EJBS para ejecutar los
Session Beans y los MDBS.

Un contenedor Java EE es un servidor de aplicaciones que es capaz de ejecutar EJBS,


puede servir como web container y adems puede incluir otras APIS y servicios, como por
ejemplo el de persistencia. Algunos servidores de aplicaciones pueden proveer solamente
un contenedor web, como es el caso de Apache Tomcat, Undertow, los web servers de
IBM y Oracle, o slo proveer servicios de persistencia, como es el caso de Hibernate. Un

Sitio Web: http://www.javarevolutions.com


Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.
servidor de aplicaciones como JBoss trae un servidor Apache Tomcat y un servidor
Hibernate, que se ejecutan dentro de forma transparente.

Qu servicios proveen los EJBS?

- Integracin: Proveen una forma de acoplar en tiempo de ejecucin diferentes


componentes, mediante simple configuracin de anotaciones o XMLS. El
acoplamiento se puede hacer mediante Inyeccin de Dependencia (DI) o usando
JNDI, como se haca en EJB 2. La integracin es un servicio que proveen los beans
de sesin y los MDBS.
- Pooling: El contenedor de EJBS crea para componentes EJB un pool de instancias
que es compartido por los diferentes clientes. Aunque cada cliente ve como si
recibiera siempre instancias diferentes de los EJB, el contenedor est
constantemente reusando objetos para optimizar memoria. El pooling es un
servicio que se aplica a los Stateless Session Beans y a los MDBS.
- Thread-safely: El programador puede escribir componentes del lado del servidor
como si estuviera trabajando en una aplicacin sencilla con un solo thread (hilo). El
contenedor se encarga de que los EJBS tengan el soporte adecuado para una
aplicacin multi-usuario (como son en general las aplicaciones enterprise) de
forma transparente, asegurando el acceso seguro, consistente y performance.
Aplica a los beans de sesin y a los MDBs.
- Administracin de Estados: El contenedor de EJBS almacena y maneja el estado de
un Stateful Session Bean de forma transparente, lo que significa que el
programador puede mantener el estado de los miembros de una clase como si
estuviera desarrollando una aplicacin desktop ordinaria. El contenedor maneja
los detalles de las sesiones.
- Mensajera: Mediante los MDBS es posible desacoplar por completo dos
componentes para que se comuniquen de forma asincrnica, sin reparar
demasiado en los mecanismos de la JMS API que los MDBS encapsulan.
- Transacciones: EJB soporta el manejo de transacciones declarativas que permiten
agregar comportamiento transaccional a un componente simplemente usando
anotaciones o XMLS de configuracin. Esto significa que cuando un mtodo de un
EJB (Session Bean o MDB) se completa normalmente, el contenedor se encargar
de commitear la transaccin y efectivizar los cambios que se realizaron en los
datos de forma permanente. Si algo fallara durante la ejecucin del mtodo (una

Sitio Web: http://www.javarevolutions.com


Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.
excepcin o cualquier otro problema), la transaccin hara un rollback y es como si
el mtodo jams se hubiera invocado.
- Seguridad: EJB soporta integracin con la Java Authentication and Authorization
Service (JAAS) API, haciendo casi transparente el manejo transversal de la
seguridad. Aplica a todos los Session Beans.
- Interceptors: EJB introduce un framework liviano y simple para AOP (programacin
orientada a aspectos). No es tan robusto y completo como otros, pero es lo
suficientemente til para que sea utilizado por los dems servicios del contenedor
para brindarnos de forma invisible los crosscutting concerns de seguridad,
transacciones, thread-safely. Adems, nosotros, como programadores, podemos
agregar nuevos aspectos como logging o auditoria y dems de forma configurable.
- Acceso Remoto: Es posible acceder de forma remota a distintos EJBS de forma
sencilla, simplemente mediante la Inyeccin de Dependencia. El procedimiento
para inyectar un componente local o uno remoto es exactamente el mismo,
abstrayndonos de las complicaciones especficas de RMI o similares. Este servicio
aplica nicamente a los Session Beans.
- Web Services: Un Stateless Session Bean puede publicar sus mtodos como web
services mediante una sencilla anotacin. Y exactamente esto es lo que haremos
ms adelante en la parte prctica de este libro en la parte 2.
- Persistencia: EJB 3 provee la especificacin JPA para el mapeo de objetos (Entities)
a tablas.
- Catching and Performance: JPA provee de forma transparente un importante
nmero de servicios que permiten usar un cach de entidades en memoria y una
lectura y escritura sobre la base de datos altamente performance.

Hasta aqu hemos visto mucha teora, recuerden que nosotros enseamos bajo
metodologas agiles de desarrollo, y nos basamos y le damos ms prioridad a la parte
prctica que a la teora, con esto no queremos decir que la teora no importa, al contrario,
es la base fundamental, pero eso les corresponde a ustedes leer toda la teora en internet,
tambin nos ocupamos mucho en que la curva de aprendizaje sea menor y exploten su
capacidad de estudio para la parte de la teora por medio de la investigacin.

Dicho lo anterior entremos de lleno a la parte prctica, vamos a aprender muchsimas


cosas que nos quedaran claras y veremos la sencillez de utilizar frameworks y tecnologas
altamente probadas y confiables para el desarrollo de sistemas profesionales
empresariales de vanguardia Java EE.

Sitio Web: http://www.javarevolutions.com


Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.
Comencemos con la parte prctica y real, para
desarrollar proyectos reales.
Prerrequisitos:
- Un equipo de 2GB de RAM mnimo, de preferencia
4GB.

- Conexin de banda ancha a internet.

- Y . . . solamente con eso, todo lo dems lo haremos a lo


largo de este libro.

NOTA: No importa si ests leyendo este libro desde tu


tableta, celular o cualquier dispositivo mvil, solamente con
leer este libro tus conocimientos de integracin de JSF 2 +
PrimeFaces 5 + Hibernate 4 + Spring 4 para proyectos web
profesionales aumentara considerablemente. La
recomendacin es que antes de llevar a cabo los pasos que
ejecutaremos en este libro, lo hayas ledo completamente
hasta tener en claro los conceptos y lo que vamos a hacer.

Sitio Web: http://www.javarevolutions.com


Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.
A continuacin te vamos a explicar paso a paso y con lujo de detalle cmo crear una
aplicacin profesional desde cero integrando dichas tecnologas. Esta informacin es
reservada solo para ti que has comprado este libro. Te prometimos que aprenderas
muchsimas cosas nuevas y te lo vamos a cumplir.

OK, primero que nada crea un nuevo usuario y una nueva conexin para hacer todo
desde cero, recuerda que para crear nuevos usuarios debes de conectarte con el usuario
system con la conexin de dicho usuario, estos pasos son los que vimos anteriormente
en este libro.

El usuario se llamar jrAdmin, a tu conexin ponle el nombre que gustes. Es muy


importante que respetes el nombre del usuario jrAdmin.

Sitio Web: http://www.javarevolutions.com


Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.
Sitio Web: http://www.javarevolutions.com
Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.
Desconctate y crea una nueva conexin con tu nuevo usuario jrAdmin.

Sitio Web: http://www.javarevolutions.com


Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.
Compra este libro desde aqu:
https://play.google.com/store/books/details?id=N2AvBwAAQBAJ

Sitio Web: http://www.javarevolutions.com


Canal YouTube: http://www.youtube.com/user/JavaRevolutions/videos
Todas las marcas y logotipos que aparecen en este libro son propiedad de sus respectivas compaas.

Das könnte Ihnen auch gefallen