Entradas

Mostrando entradas de marzo, 2017

Spring MVC Vistas JSP

Imagen
Spring MVC puede generar una gran variedad de vistas, entre ellas: HTML, PDF, XLS, RSS, JSP, JSON, XML, etc., estas son creadas usando diversas tecnologías, como: JSP, Thymeleaf, Velocity, FreeMarker, JasperReport, etc., en este tutorial veremos las vistas JSP utilizando JSTL, este no es un tutorial de ninguna de estas tecnologías, por lo que se recomienda que el lector tenga los conocimientos básicos de las mismas, lo que trataremos en este tutorial será la integración de estas tecnologías con Spring MVC.

Spring MVC Acceso a datos

Imagen
Anteriormente creamos una serie de tutoriales dedicados al acceso a datos con Spring Framework, ahora veremos como podemos integrar las tecnologías de datos en una aplicación Spring Web MVC, nos centraremos en la tecnología Spring Data JPA utilizando el ORM Hibernate y el motor de datos integrado HSQLDB, aunque lo aprendido se puede aplicar fácilmente a otros tecnologías.

Spring MVC Controladores

Imagen
Un controlador usualmente es el encargado de preparar el modelo (los datos manejados por la aplicación) y seleccionar el nombre de la vista que será utilizada para mostrar el modelo al cliente, el modelo es una implementación de la interface Map en la cual podemos almacenar datos en formato clave/valor estos datos serán enviados a la vista para su correcta representación, puede ser: HTML, PDF, etc., debemos decir que un controlador es capaz de generar una respuesta sin necesidad de una vista, esto es útil a la hora de crear servicios que generan respuestas en formatos como: XML, JSON, etc.

Spring MVC Configuración sin XML

Imagen
En el primer tutorial Spring Web MVC vimos la configuración XML, esta, es la que tradicionalmente se utiliza, aunque no es la única, en este curso exploraremos la configuración mediante anotaciones la cual requiere utilizar XML y anotaciones, y también veremos la configuración programática de Spring MVC, desde código Java, por lo que eliminamos por completo la necesidad de utilizar XML.

Spring MVC Creación de aplicaciones web

Imagen
Spring Web MVC es un sub-proyecto Spring que esta dirigido a facilitar y optimizar el proceso creación de aplicaciones web utilizando el patrón MVC (Modelo-Vista-Controlador), donde el Modelo representa los datos o información que manejará la aplicación web, la Vista son todos los elementos de la UI (Interfaz de Usuario), con ellos el usuario interactúa con la aplicación, ejemplo: botones, campos de texto, etc., finalmente el Controlador será el encargado manipular los datos en base a la interacción del usuario.

JavaFX Binding (sincronizar propiedades)

Imagen
En el tutorial anterior hablamos de las Propiedades JavaFX, más específicamente el como crearlas y utilizarlas, en este nuevo tutorial veremos como dos propiedades pueden mantener sus valores sincronizados, es decir, si la propiedad A esta enlazada con la propiedad B cualquier cambio en el valor de B se reflejará en A, no funciona al inverso, a esto se le llama: unidirectional binding, si que el enlace sea en doble vía, es decir, deseamos que cualquier cambio de A se refleje en B y un cambio en B se refleje en A necesitamos un bidirectional binding.

JavaFX InvalidationListener y ChangeListener

Imagen
Las propiedades JavaFX cuentan con el método addListener() que podemos usar para registrar un método que será notificado cuando el valor de una propiedad cambie, la sobrecarga de este método nos permite utilizar dos interfaces, ChangeListener y InvalidationListener, para indicar cual será el método que recibirá las notificaciones, cuando ya no deseemos recibir notificaciones usaremos removeListener().

JavaFX (Property API) Propiedades

Imagen
Una propiedad en JavaFX en básicamente una clase wrapper que encapsula los campos de un objeto añadiéndoles funcionalidades extras, como: la capacidad notificar los cambios en sus valores o permitir enlaces entre propiedades similares, una propiedad JavaFX puede ser de lectura/escritura o solo-lectura, para cada tipo simple, como: String, Double, etc. tenemos su correspondiente clase wrapper como: StringProperty, DoubleProperty, etc., para tipos complejos tenemos ObjectProperty<T>.

Generar Entidades JPA con Netbeans

Imagen
Lo primero que necesitamos hacer para este tutorial es descargar el HSQLDB, una vez tengamos la carpeta descargada y extraída, ya que se encuentra en un archivo comprimido, ejecutamos el archivo hsqldb/bin/runServer.bat este se encargará de iniciar HSQLDB en modo servidor y además crea una base de datos llamada test que tiene un alias vacío.

Utilizar librerías Maven en Ant con Netbeans

Imagen
En este tutorial veremos como podemos obtener un grupo de librerías con Maven y luego utilizarlas en un proyecto Java Ant con el IDE Netbeans, usaremos Maven para obtener la librería y todas sus dependencias requeridas, hacer esto con Ant suele ser muy complicado si la biblioteca tiene muchas dependencias, se puede utilizar Ivy pero eso será para otro tutorial, por ahora Maven administrará nuestras dependencias y luego las convertiremos en una librería que podemos usar con Ant.

tkinter Grid

Imagen
El método grid nos permite posicionar los widgets en una celda en especifico, indicamos la celda usando el índice de fila y columna correspondiente, el ancho y la altura de cada celda son configurables, además un widget puede ocupar varias celdas si lo deseamos, usando grid podemos crear fácilmente interfaces gráficas de usuario tipo formulario.

Spring Integración con QueryDSL

Imagen
Seguimos con nuestra serie de cursos sobre acceso a datos con Spring, seguimos trabajando sobre el proyecto del tutorial anterior Spring Data JPA, en esta ocasión integraremos la librería QueryDSL a nuestro proyecto, la misma nos permite generar consultas de una manera, rápida, consistente y segura, esta librería fue en principio diseñada para HQL Hibernate pero hoy en día soporta varias tecnologías de persistencia de datos, como: JPA, JDBC, Lucene, MongoDB, etc.

Spring Data JPA acceso a datos simple y rápido

Imagen
En el tutorial anterior Hibernate JPA logramos reducir y simplificar el código de acceso a datos, comparando con lo que hicimos en el curso acceso a datos con JDBC obtuvimos, grandes beneficios, aun así, en este momento todavía tenemos gran cantidad de código repetitivo, por ejemplo, para cada entidad JPA debemos escribir las operaciones CRUD (crear, leer, actualizar, borrar), Spring Data genera automáticamente estas y otras operaciones que son de uso común, además nos provee una manera simple para crear consultas y obtener los datos.

Spring Acceso a datos con Hibernate JPA

Imagen
En los tutoriales previos de acceso a datos veíamos como la clase JdbcTemplate de Spring realiza gran parte del trabajo por nosotros, aun así, ya sea si utilizamos la API JDBC directamente o la clase JdbcTemplate siempre tenemos que convertir los datos obtenidos de la BD en objetos Java para manipularlos en nuestra aplicación y hacer el proceso inverso para almacenarlos nuevamente el la BD, para facilitarnos el trabajo existen frameworks que se encargan de realizar esta tarea, ello son los ORM.

Spring I18N Múltiples lenguajes

Imagen
Las aplicaciones basadas en Spring Framework soportan I18N, este término en una forma abreviada de la palabra (internationalization) ya que entre la letra inicial I y la letra final N existen 18 caracteres, I18N no es más que la capacidad que tiene una aplicación de poder manejarse en distintos idiomas, es decir podremos mostrar los textos o mensajes de la aplicación en diversos idiomas.

tkinter Canvas

Imagen
El widget canvas en tkinter nos brinda una superficie sobre la que podemos dibujar distintas figuras, imágenes, texto, etc., para cada uno de ellos tenemos un método de la forma: canvas.create_*, por ejemplo para dibujar una línea tenemos: canvas.create_line o canvas.create_image para dibujar una imagen en el canvas.

Spring base de datos con JdbcTemplate

Imagen
La clase JdbcTemplate en Spring Framework es la encargada de realizar el trabajo de captura de excepciones, enviar consultas a la base de datos, mapear los resultados (convertir los datos de la tabla en la correspondiente clase), cerrar las conexiones, etc., con esto logramos reducir el código y nos enfocamos únicamente en lo que realmente nos interesa.

Spring Acceso a datos con JDBC

Imagen
El Framework Spring provee muchas tecnologías de acceso a datos, la primera de ellas que veremos en esta serie de cursos es la API llamada Java Database Connectivity (JDBC), con ella podemos tener acceso a diferentes servidores de datos, como: MySQL, PostgresSQL, SQL Server, y muchos más, Spring también soporta otras tecnologías de acceso a datos más avanzadas como la utilización de ORM como Hibernate, iBATIS, JDO, JPA, también disponemos del Framework Spring Data.

Spring Inyección automática con autowiring

El contenedor Spring posee un mecanismo de inyección automática llamado autowiring, este mecanismo inspecciona el ApplicationContext en busca de las dependencias requeridas por los beans y las inyecta automáticamente, contamos con tres modos disponibles: byType, byName, y constructor.

Spring archivo de propiedades externo

Imagen
En algunas ocasiones será necesario guardar información en archivos que se encuentren en el classpath, el sistema de archivos, por ejemplo, es usual crear un archivo llamado application.properties donde se almacenan datos de configuración de la aplicación, como los  datos de conexión a la base de datos, entre otras cosas, Spring nos facilita esta tarea con la anotación @PropertySource.

Tutorial tkinter con Python 3.x

Imagen
El desarrollo de interfaces gráficas de usuario (GUI) es una tarea común a la hora de desarrollar aplicaciones no solo con Python, también con muchos otros lenguajes de programación, tkinter es un módulo Python que nos facilita el desarrollo de las GUI, está disponible en la instalación por defecto, soporta diversas plataformas como: Windows, Linux, Mac, y además es muy fácil de usar.

Python Leer y escribir datos en formato JSON

El formato JSON (JavaScript Object Notation) es comúnmente utilizado para la transferencia de datos por la red, es un formato simple y muy utilizado en todo tipo de aplicaciones web para el intercambio de datos entre el cliente y el servidor de datos, para este tutorial vamos a escribir y leer datos almacenados en el disco local.