6 de febrero de 2011

Spring 3 - Parte 4: Ciclo de Vida de los Beans

En los tutoriales anteriores hemos visto cómo trabajar configurar beans, tanto con anotaciones como con archivo de configuración en XML, y cómo cablearlos a las propiedades de otros beans.

Sin embargo Spring nos proporciona mecanismos para controlar la creación de beans y ejecutar ciertas acciones en las distintas etapas del ciclo de vida de nuestros beans.

En este tutorial aprenderemos cómo controlar cuándo deben ser creadas las instancias de los beans y a crearlos a través de un método estático de factoría, además de recibir notificaciones cuando un bean es creado y antes de que sea destruido.

2 de enero de 2011

Spring 3 - Parte 3: Inyección de Colecciones

En el tutorial anterior vimos cómo hacer la configuración de Spring para poder hacer el cableado o wiring de propiedades simples, ya fuera un valor constante o una referencia a un objeto.

Esto es muy útil cuando esperamos solo una referencia o un valor, ¿pero qué ocurre en el caso en el que necesitemos hacer la inyección de varios objetos? Java proporciona un conjunto de clases que nos permiten manejar conjuntos de objetos. Estas clases son conocidas como colecciones.

En este tutorial aprenderemos cómo realizar la inyección de dependencias en 3 tipos de colecciones ("List", "Set", y "Map") y, adicionalmente, aprenderemos a inyectar propiedades ("properties") y arreglos ("arrays"). Además veremos cómo insertar valores nulos en las propiedades de nuestros beans.

23 de diciembre de 2010

Spring 3 - Parte 2: Contenedores de IoC e Inyección de Dependencias

Como vimos en el primer tutorial de la serie, el core de Spring se basa en el concepto de Inversión de Control (IoC por sus siglas en inglés), más específicamente en la Inyección de Dependencias (DI). Este es un proceso en el cual los objetos definen sus dependencias (o sea, los otros objetos con los que trabajan) solo a través de los argumentos de su constructor, argumentos a un método de factory, o métodos setter que son invocados después de que el objeto se ha construido. En este caso en vez de ser el mismo objeto quien se encargue de instanciar, o localizar, las dependencias con las que trabaja (usando directamente su constructor o un localizador de servicios), es el contenedor el que inyecta estas dependencias cuando crea al bean. Este proceso, como podemos observar, es el inverso al que normalmente se hace, y de ahí el nombre de Inversión de Control (es el framework el que hace el trabajo, no el programador ^_^).

En este tutorial veremos como configurar Spring de 4 formas distintas para que realice este proceso de Inyección de Dependencias de forma automática

26 de octubre de 2010

Java Tutoriales en Facebook

No sé si algunos de ustedes los habrán notado, pero desde hace unos días se creó un sitio de facebook para la página de Java Tutoriales. De hecho pueden ver la insignia de facebook en el panel de la derecha ^_^.

Este sitio fue creado para que podamos compartir información de diversos tipos y estar en contacto con la comunidad de una forma más cercana. Así que no sean tímidos, entren y regístrense (dando clic en el botón "Me gusta").

Podremos intercambiar información, hacer preguntas, comentarios, concursos ( del cual por cierto ya tuvimos uno y hasta ganadora hubo ^_^), y todo lo que se les ocurra.

Así que regístrense para que podamos estar en contacto =D.

Saludos.

10 de octubre de 2010

Sun Certified Java Programmer 6, CX-310-065 - Parte 1: Declaraciones y Controles de Acceso

Este es el primer post dedicado a la certificación SCJP 6 (CX-310-065). Definiremos algunos conceptos básicos del lenguaje Java así como sus reglas más básicas de funcionamiento.

¿Por qué es importante esto? Bueno esto es de vital importancia ya que en todo lenguaje de programación, y tecnología en general, es importante para entender sus funciones avanzadas, comenzar entendiendo las partes básicas, así como definir los términos que se usan, para que todos entendamos de lo que estamos hablando.

Pues comencemos con el primer tema con un repaso de los conceptos básicos que debemos tener presentes, a modo de recordatorio.


4 de octubre de 2010

Sun Certified Java Programmer 6, CX-310-065

¿Qué es una certificación?


Una certificación es el proceso mediante el cual una tercera persona o institución, asegura por escrito que un producto, proceso, servicio, o en este caso conocimiento cumple con los requisitos especificados. Es un elemento insustituible para generar una mayor confianza entre las relaciones cliente-proveedor, o en este caso empleado-empleador.

Obtener una certificación Java proporciona una demostración clara de las habilidades técnicas, dedicación profesional y motivación que los desarrolladores tienen para mejorar día con día.

La certificación Java de Sun/Oracle es reconocida mundialmente, la industria respeta los programas de certificación en la tecnología Java. Se enfoca en los roles principales en desarrollo de aplicaciones de software y arquitectura empresarial. Las certificaciones son el punto central del proceso de aprendizaje, ya que proporciona una validación de los conjuntos de habilidades para un rol específico en un trabajo.

13 de septiembre de 2010

Día del Programador 2010

Feliciades a todos los programadores que visitan este blog.

El día doscientos cincuenta y seis de cada año, o en binario el 1111 1111, se celebra el "Día del Programador". Esta año cayó justamente el 13 de Septiembre

La celebreación fué propuesta por Valentine Balt, un empleado de Parallel Tecnologies, a prinicpios del 2002 el intentó hacer llegar una petición firmada al gobierno de de Rusia para que el día se reconozca como el dia oficial del Programador.

El día 24 de julio de 2009 el ministro de Comunicación e Informatización de Rusia, presentó un borrador de una decreto para fijar el día de Programador, así que el día 11 de septiembre de 2009, el presidente de Rusia Dmitry Medvedev firmó el decreto y el día del prorgamador quedó oficializado (al menos en Rusia).
Esta festividad tiene por motivo reconocer esfuerzo de todos los que nos dedicamos a esta noble profesión.

Las tradiciones de este día incluyen jugar viejos juegos de computadora, hacer pequeños programas inútiles, poner un nick alusivo en los distintos medios de chat, enviar mensajes de texto y emails con felicitaciones a nuestros conocidos que se desarrollen en esta área, comportarse de maneras tontas, editar la Wikipedia, jugar con computadoras viejas, etc.

El día número 256 resulta el 13 de septiembre, excepto en los años bisiestos, en los que cae el 12.

Así que feliciades a todos los programadores.

2 de septiembre de 2010

Spring 3 - Parte 1: Introducción

En la actualidad el desarrollo de aplicaciones empresariales, aunque es más sencillo ya que hay muchas herramientas, APIs, y Frameworks; los cuales aunque son opcionales, el aprender a usarlos nos ayudará a desarrollar nuestras aplicaciones en menos tiempo y a que estas sean más robustas y contengan menos errores.

También se vuelve un poco más complicado porque nuestras aplicaciones deben ser capaces de conectarse con otras aplicaciones y servicios. Además, como desarrolladores, somos los responsables de coordinar cada una de las partes de nuestra aplicación para que todo funcione correctamente.

Por si no fuera suficiente, debemos tomar en cuenta que debemos darle mantenimiento a nuestras aplicaciones, y que en algunos casos será necesario que cambiemos módulos o capas enteras de la misma para mejorarla; como por ejemplo sustituir nuestras consultas JDBC con Hibernate en los casos en los que sea prudente.

Afortunadamente existen super-frameworks que nos ayudan haciéndose cargo de todas o casi todas las “complicaciones” mencionadas anteriormente. Spring es el más popular de estos super-frameworks Java. Nos proporciona varios módulos los cuales abarcan la mayor parte de las cosas que debemos hacer en cualquiera de las capas de nuestras aplicaciones, desde plantillas para trabajar con JDBC o invocación de Web Services y JMS, pasando por sus propias soluciones, ORM o MVC (web), hasta integración con otros frameworks, como Struts 2, Hibernate, JSF, etc. Todo esto de una forma elegante y haciendo uso de muchos buenos principios de programación. Además Spring maneja la infraestructura de la aplicación, por lo que nosotros solo deberemos preocuparnos de la lógica de la misma (y de la configuración de Spring).

En esta serie de tutoriales aprenderemos como usar Spring, en su versión 3, para facilitarnos la vida en el desarrollo de nuestras aplicaciones Java. Para aprender a usar Spring de forma correcta hay que ver muuucha teoría, así que en este primer tutorial hablaremos solo de los conceptos básicos de Spring y explicaré cada una de las partes, junto con su teoría correspondiente, en el post correspondiente.

23 de agosto de 2010

Hibernate - Parte 11: Interceptores y Eventos

Algunas veces podemos tener situaciones que demanden la realización de algunas operaciones antes o después de nuestra lógica funcional (precondiciones y postcondiciones). O tal vez simplemente queremos intervenir antes o después de qué alguna de nuestras operaciones de persistencia (alta, baja, actualización, lectura, etc.) sea realizada. Ya sea para, por ejemplo, modificar algún valor de nuestra entidad (como encriptar algún dato antes de ser guardado) o para leer algún valor.

También algunas veces es necesario recibir alguna notificación de algún suceso que esté ocurriendo en nuestro motor de persistencia, como el estar recuperando o eliminando algún objeto. Esto puede ser útil para propósitos de auditorías, o para obtener estadísticas sobre las operaciones de persistencia en nuestras aplicaciones.

Hibernate proporciona dos mecanismos para lograr estos dos objetivos: listeners y eventos.

En este tutorial aprenderemos cómo recibir notificaciones cada vez que Hibernate realice alguna operación de persistencia a través de estos dos mecanismos.


3 de agosto de 2010

Hibernate - Parte 10: Herencia

La herencia es uno de los mecanismos que nos proporciona la orientación a objetos más poderosos, ya que gracias a ella surgen cosas como la sobreescritura, la reutilización y extensibilidad de código, etc.

Ya que le herencia facilita la creación de clases a partir de otras clases ya existentes en algunas ocasiones nuestras clases entidad necesitarán extender de otras clases, entidades o no. Como por ejemplo, podemos tener una clase "Usuario" de las cuales extiendan las clases "Administrador", "Operador" y "SuperUsuario".

Mapear una jerarquía de clases a tablas relacionales puede ser un problema un poco complejo. Afortunadamente Hibernate nos proporciona 3 formas o estrategias de manejar la herencia con nuestras clases entidad. En este tutorial veremos cómo usar estas tres formas de herencia y las implicaciones que tienen el uso de una u otra. Veremos cómo hacer esto tanto con anotaciones como con archivos de mapeo.