Jugando con SpringFramework

Hace tiempo que oi hablar de SpringFramework, pero siempre he oido hablar de él asociado a J2EE. Como lo mio son aplicaciones de escritorio y de J2EE no tengo ni idea, nunca he hecho caso de SpringFramework, al igual que no lo he hecho de Structs.

Sin embargo, en algún sitio leí que SpringFramework es un framework en capas, que puedes utilizar más o menos independientemente y algunas de ellas son útiles para cualquier tipo de aplicación, incluidas las de escritorio. Así que me puse a investigar y luego a jugar.

Efectivamente, entre las capas de SpringFramework, hay algunas claramente de J2EE y aplicaciones web -las de nombre JEE y Web-, pero hay otras que no lo son. En concreto, DAO y ORM sirven para acceso a base de datos, AOP para programación orientada a aspectos y Core es un "contenedor" de beans -y no precisamente EJBs-.

En principio me han llamado la atención DAO y ORM, ya que el acceso a base de datos lo uso mucho y cualquier cosa que te ayude es buena. Me hice mi primer ejemplo tonto con DAO y me ha parecido bien. Es sencillo y quita bastante trabajo repetitivo de JDBC -hacer bucles con los ResultSet, componer complejas sentencias SQL, etc-.

Lo de AOP -Programación orientada a aspectos- sé de qué va y no suelo usarlo, así que esa capa en principio me interesa menos y no he probado nada con ella.

En cuanto a Core, el "contenedor de beans", lo he mirado porque ando dándole vueltas a algo parecido y veo la posibilidad de que ya esté implementado algo similar a lo que ando dando vueltas. Mi intención es hacer un ejecutable que lea en un fichero de configuración qué módulos debe instanciar y que estos módulos, sean en principio independientes y sea el main el que "trasiega" datos de uno a otro. El contenedor de beans Core "suena" a algo parecido. De momento, ya me he hecho un ejemplo tonto con Core.

El uso de Core, básicamente consiste en hacer clases bean con métodos set() y get(). Luego, en un fichero XML, dices qué clases bean deben instanciarse, cómo deben inicializarse sus atributos y qué instancias de beans ven a qué otras instancias de beans. Luego, en tu "main", instancias uno de los BeanFactory, como la clase XmlBeanFactory de SpringFramework y listo, se instancian e inicializan automáticamente todos los beans.

Fuera de la web de SpringFramwork, hay una ampliación para clientes "ricos", es decir, para clientes con SWING. Esta ampliación en principio me resulta interesante, pero veo que anda en la versión 0.2.1 y la documentación escasa, por lo que no sé si está todavía bastante "evolucionada".

Seguiré investigando todo esto.

Esta entrada fue publicada en java, SpringFramework. Guarda el enlace permanente.

5 respuestas a Jugando con SpringFramework

  1. rfilgueiras dijo:

    Como tienes muchos accesos a bases de datos te recomiendo que investigues HIBERNATE que mapea los atributos de una tabla de base de datos sobre tu modelo de objetos. Y funciona con ficheros XML para el mapeo o con anotaciones.

    Si únicamente quieres utilizar DAOs hay herramientas gratuitas tipo SQUIRREL SQL que se conectan a la base de datos y te crean los DAOs a partir de las tablas.

  2. Dani dijo:

    Quizás te resulten interesantes también los ejemplos de código de javaconganas: http://code.google.com/p/jcg-samples/.

    Hay de spring dao y spring jpa.

  3. eynob dijo:

    Chuidiang, me extraña que no uses Hibernate y todavia estes con eso de jdbc, realmente debes investigarlo y te daras cuenta lo bueno que es

  4. Chuidiang dijo:

    Hola:

    Cosas como iBatis o Hibernate son cosas que tengo pendientes desde hace mucho tiempo.

    Después de vuestros comentarios me he puesto a mirar un poco Hibernate, pero la verdad es que el tema parece difícil. No es difícil el mapeo,lo que es difícil es saber qué tienes que coger de hibernate para no llevarte medio jee y jboss detrás, que supongo que para mapeo no vale para nada.

    De momento me he bajado el Hibernate core, pero me ha bajado demasiados jar y no sé si he acertado con lo que quería…

    Sed buenos.

  5. Jordi dijo:

    Prueba JPA, persistencia celestial, todo anotaciones (también lo puedes hacer con Hibernate Annotations). Lo bueno es que es una spec, usa la implementacion que quieras, cambiala en un futuro que tu código no va a tener que cambiar.
    Saludos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.