jueves, 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

martes, 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.

domingo, 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.


lunes, 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.

lunes, 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.

jueves, 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.

lunes, 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.


martes, 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.

domingo, 25 de julio de 2010

Hibernate - Parte 9: Parámetros en HQL

En los dos tutoriales anteriores aprendimos cómo crear sentencias en el Hibernate Query Language (HQL) para poder hacer consultas más específicas, que las que por default nos proporciona Hibernate, a objetos almacenados en nuestra base de datos.

Hasta ahora nuestras consultas siempre han sido estáticas, pero en nuestras aplicaciones usualmente deberemos pasarles parámetros para obtener los datos correctos, como por ejemplo una cadena que represente un criterio de búsqueda, o el username y password de un usuario que queramos buscar.

Ahora veremos cómo poder pasar parámetros a estas consultas de una forma “correcta”; y digo correcta porque siempre podríamos concatenar los parámetros al String que usemos para generar nuestra consulta.

sábado, 22 de mayo de 2010

Hibernate - Parte 8: HQL Segunda Parte

En el tutorial anterior vimos una introducción al lenguaje de consultas de Hibernate, el Hibernate Query Language (HQL) y vimos algunas de sus características.

También vimos como ejecutar consultas desde el editor del NetBeans, y desde código dentro de una aplicación de ejemplo.

En esta segunda parte veremos el resto de las clausulas que componen este lenguaje y seguiremos con ejemplos en código.