Java 8 – Streams

java 8 - StreamsLos Streams son una secuencia de elementos que soportan operaciones de agregación secuencial y paralela. Una de las nuevas características de Java 8 que permite manipular las colecciones como nunca, casi parecido a un sueño. (más…)

Leer Más

JPA – Resource Local transaction

JPA Resource LocalResource Local es un tipo de transaccionalidad que soporta JPA que delegar la responsabilidad de las transacciones al programador, de esta manera, el programador será el único responsable de abrir y cerrar las conexiones, realizar los Rollback y cerrar las conexiones no utilizadas. (más…)

Leer Más

Ordenar Listas en Java

Ordenar Listas en JavaSi eres programador seguramente te has encontrado con el problema de Ordenar Listas, pero ¿Estamos utilizando la solución correcta o estamos reinventando la rueda? Pues en este artículo hablaremos de las formas estándares que ofrece Java para ordenar listas sin tener que programar más de lo requerido.

 

Básicamente Java ofrece dos interfaces que serán claves para realizar un ordenamiento simple, las cuales son Comparator  y Comparable, estas dos interfaces atienden contextos diferentes en el ordenamiento de las listas, pues existen dos escenarios concretos (Si ya conoces la teoría puedes brincarte a la última sección):

 

Objetos preparados para ser Ordenados

 

El escenario más simple para ordenar un Lista, es cuando sus elementos están preparados para ser ordenados, esto implica que los elementos de la lista implementan la interface Comparable. Al implementar esta interface, las clases deberá implementar el método public interface Comparable<T>, el cual sirve para comprar un objeto contra otro, este método recibe como parámetro otro objeto, el cual utilizaremos para comprarlo contra el actual para responder con un entero, el cual deberá ser:

 

  • < 0 (Menor que cero): cuando el objeto actual es menor que el otro
  • = 0 (Igual a cero): cuando los objetos son iguales
  • > 0 (Mayor que cero): cuando el otro objeto es mayor.

 

Cuando una clase implementa Comparable entonces podemos decir que está preparada para ser Ordenada y ordenarla será tan simple como hacer lo siguiente:

Collections.sort(lstSortEmployees);

Asumiendo que la variable lstSortEmployees es una lista de objetos que implementan Comparable. (más…)

Leer Más

Java 8 – Métodos referenciados

métodos referenciadosLos métodos referenciados son una de las nuevas características de Java 8 que nos permite hacer referencia a los métodos y constructores por medio de una interface funcional, dicho de otra manera, podemos implementar la funcionalidad de un método abstracto por medio de la implementación de un método ya implementado, asignando el método implementado al método abstracto. Esto puede resultar un tanto extraño, sobre todo porque Java era, hasta la versión 8 un lenguaje demasiado estricto. (más…)

Leer Más

Introducción a Java Transaction API(JTA)

Guia de JPA-JTAJTA o Java Transaction API es la encarga de administrar las transacciones del lado del servidor, abstrayendo casi en su totalidad al programador de abrir o cerrar las transacciones, de esta forma el programador únicamente se preocupa por la lógica de negocio aumentando drásticamente la productividad y los errores de Runtime. (más…)

Leer Más

Web Services con Java (JAX-WS)

ReflectionToStringBuilderLos Web Services cada vez son más indispensable a la hora de construir aplicaciones, debido a que ya casi cualquier aplicación empresarial, requiere integrarse o comunicarse con otra. Por este motivo Java ofrece la librería JAX-WS la cual es definida por la especificación JSR 224. La especificación remplace a la JAX-RCP, la cual era únicamente para llamadas a procedimientos remotos, lo cual es diferente a los Web Services.

 

Crear Web Services con Java es mucho más fácil de lo que pudiéramos creer, pues ya que tan solo es necesario anotar una clase, para que esta sea expuesta automáticamente como tal por medio del servidor de aplicaciones. Para demostrar esto, desarrollaremos un Servicio para consultar y crear Empleados.

 

Lo primero que tenemos que hacer, es crear una clase que queremos exponer como WebService, luego la tenemos que anotar con @WebService :

(más…)

Leer Más

Traducir una página JSF con Java

TraducirCon la penetración que está teniendo el Internet en todo el mundo, cada vez es más importante traducir nuestras páginas web, debido a que los visitantes ya pueden venir de cualquier parte del mundo, es por eso que los sitios más importantes o que buscan captar visitantes de otras regiones, permitan a sus usuarios cambiar de idioma.

Pueda que de entrada parezca algo muy complicado o laborioso de hacer, sin embargo, es mucho más simple de lo que te puedas imaginar.

 

Para explicar cómo funciona la Internacionalización (I18N), lo explicaremos mediante un ejemplo simple pero eficaz, implementaremos una página de Login, la cual se verá de la siguiente manera:

 

Traducir

(más…)

Leer Más

Java 8 – Interfaces funcionales

Interfaces funcionalesSe le conoce como interface funcional a toda aquella interface que tenga solamente un método abstracto, es decir puede implementar uno o más métodos default, pero deberá tener forzosamente un único método abstracto. Si no te queda claro que es un método abstracto en una interface, es un método sin implementar.

Las interfaces funcionales es un nuevo concepto que fue agregado a partir de la versión 8 de Java y cobran su importancia al utilizar expresiones lambda (λ).

 

Ejemplo de interfaces funcionales:

 

A continuación, veremos ejemplos de dos interfaces funcionales válidas: (más…)

Leer Más

Java 8 – Default Method

Default MethodUna de las novedades que trae Java 8 a nivel del lenguaje, son los Default Method o Métodos default, los cuales permiten agregar métodos implementados en las interfaces. Antes de la versión 8 de Java era totalmente imposible definirles cuerpo a los métodos de las interfaces ya que nos marcaba error de compilación.

 

Para agregar un método default solo será necesario marcar un método con el operador default , veamos un ejemplo de cómo se implementan:

 

 

Los métodos default se utilizan cuando es necesario implementar un cuerpo sin la necesidad de tener que implementar por separado una clase abstracta, además los métodos por default se pueden sobrescribir en caso de que la implementación por default no cumpla con lo que requerimos. Tenemos que resaltar que los métodos default no remplazan a las clases abstractas, pues estas últimas son mucho más potentes, debido a que nos permiten definir propiedades a nivel de clase, constructores y métodos privados. Veamos una limitante de los métodos default:

(más…)

Leer Más

toString elegantes con ReflectionToStringBuilder

ReflectionToStringBuilder

En esta ocasión les quiero platicar de una fantástica clase de utilidad que yo he utilizado con frecuencia en el desarrollo de software, Esta clase es ReflectionToStringBuilder la cual es parte de la librería commonds-lang de Apache fundation. Mediante esta clase podemos imprimir de forma muy rápida las propiedades de toda una clase con solo una línea de código. Seguramente en varias ocasiones has tenido que imprimir mediante System.out.println( myObject.getPropiedad() ) las propiedades de una clase para depurar los valores o los has tenido que imprimir directamente en el Log de la aplicación como logger.debug( myObject.getPropiedad() ). En tal caso tenemos que realizar esto por cada propiedad de la clase que deseamos depurar. Si eres de los que hace esto con regularidad entonces este Artículo te interesa. (más…)

Leer Más